2010-05-10 2 views
1

Я рассматриваю возможность создания простой удаленной отладочной программы для Javascript. На самом деле, я хочу предоставить объект Firebug Lite и позволить ему выполнять всю работу.Можете ли вы перенести объект Javascript на сервер и получить его в том же состоянии?

Итак, могу ли я получить объект с одной страницы, сериализовать его, отправить его на сервер, а затем в другой браузер и, наконец, увидеть те же результаты в Firebug Lite (на этом другом клиенте), как я бы увидел в первом браузере (с выполнением "console.dir (obj)")? Можно ли это сделать?

ответ

1

Обычный ответ: нет. Вам придется serialize ваш объект для какой-то строки. Это может быть XML или JSON, или формат, ты придумываешь, как:

var anObject = {first:1,second:2,third:'infinite'}; 
function serializer(obj){ 
    var serialized = []; 
    for (var l in obj){ 
    if (obj.hasOwnProperty(l)){ 
     serialized.push(l+'='+obj[l]); 
    } 
    } 
    return serialized.join('&'); 
} 

alert(serializer(anObject)); //=>first=1&second=2&third=infinite 

Если объект содержит объекты, вы можете использовать функцию сериализатора рекурсивно.

0

Самое простое решение для сериализации в JSON. Однако важно отметить, что JSON не поддерживает все типы JavaScript.

0

Вместо того, чтобы ответить наполовину на вопрос, вот реальная сделка!

Как и другие сказали, использовать JSON (implementation details) для сериализации данных (потому что это nativly поддерживается Javascript и это легко), а затем отправить его на сервер с помощью AJAX, возможно, отправив его в PHP скрипт, который просто сохраняет его в файл или базу данных или что-то в этом роде.

Затем, с другой стороны, вы просто получаете его снова, используя AJAX, чтобы попросить упомянутый PHP-скрипт вернуть эти данные вам!

Смежные вопросы