Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сериализация объекта с функциями. (https://javascript.ru/forum/misc/66836-serializaciya-obekta-s-funkciyami.html)

who_cares_? 13.01.2017 13:16

Сериализация объекта с функциями.
 
Всем привет!
Есть большой объект с кучей вложенных объектов, в которых к тому же полно разнообразных функций (основная база для игры).
Так вот, этот объект нужно сохранить на диске/в куках.
JSON по причине игнорирования функций в объекте не подходит (хотя почти уверен для него есть плагин решающий проблему, который я так и не нашел).
Следовательно вопрос - как его сохранить/сериализовать?
Может есть другие подходящие форматы кроме JSON?
Только пожалуйста не предлагайте разбираться с каждой функцией в ручную, их очень много, включая функции со сгенерированными именами (игра крайне инновационная:D )

TestUser013 13.01.2017 13:23

Как вариант - рекурсивно пройтись по объекту и обработать все что в нем есть. Вот реализация https://github.com/nervgh/object-traverse

ksa 13.01.2017 13:23

Цитата:

Сообщение от who_cares_?
этот объект нужно сохранить на диске/сервере

Какой хоть серверный язык используется? Во что именно он может писать?
Цитата:

Сообщение от who_cares_?
Следовательно вопрос - как его сохранить/сериализовать?

На сервер можно передать только строку (УРЛ). Как ты ее будешь формировать - дело твое.

who_cares_? 13.01.2017 13:28

Серверный часть по планам будет отвечать только как раз таки за сохранение.. так что буду использовать тот который получится/будет_подходить..)

ksa 13.01.2017 13:35

Цитата:

Сообщение от who_cares_?
Серверный часть по планам будет отвечать только как раз таки за сохранение.. так что буду использовать тот который получится/будет_подходить..)

:blink:


who_cares_? 13.01.2017 13:39

Цитата:

Сообщение от TestUser013 (Сообщение 440562)
Как вариант - рекурсивно пройтись по объекту и обработать все что в нем есть. Вот реализация https://github.com/nervgh/object-traverse

Можно поподробней?) Пройтись да, можно, но как сохранить объект + функции, а главное как его потом извлечь?..(

ksa 13.01.2017 13:46

Цитата:

Сообщение от who_cares_?
как сохранить объект + функции

Например голимым текстом. :)
Цитата:

Сообщение от who_cares_?
а главное как его потом извлечь?

Тут, опять же, интересно знать о возможностях твоего сервера... ;)

Как вариант, можно потом сформировать на сервере js-файл (это ведь просто текстовый файл)... А потом просто подключить его на странице
<script src='сгенерированный_файл.js'></script>

who_cares_? 13.01.2017 13:53

Цитата:

Сообщение от ksa (Сообщение 440573)
Например голимым текстом. :)

Вот тут у меня похоже пробел.. как перевести содержимое функции в текст?)
И все, забыли про сервер) Это дополнительный функционал, а тут хотя бы с диском/куками разобраться..)

ksa 13.01.2017 14:32

Цитата:

Сообщение от who_cares_?
как перевести содержимое функции в текст?)

Дык!
function test(){
	document.getElementById('divid').className='off'; 
	return false;
};
var str=test.toString();
alert(str);

ksa 13.01.2017 14:34

Цитата:

Сообщение от who_cares_?
И все, забыли про сервер) Это дополнительный функционал

Ооочень многое зависит от серверного языка. :nono:
Можно иметь огромные возможности по передаче с клиента на сервер и обратно, а можно иметь некий мизер, позволяющий хоть как-то делать вэб-приложения...


Часовой пояс GMT +3, время: 12:05.