您可以将Javascript对象传输到服务器并以相同的状态接收它吗?

时间:2010-05-10 12:09:27

标签: javascript debugging serialization firebug

我正在考虑为Javascript创建一个简单的远程调试应用程序。实际上,我想为Firebug Lite提供一个对象,让它完成所有工作。

那么,我可以从一个页面获取一个对象,将其序列化,将其发送到服务器然后再发送到另一个浏览器,最后在Firebug Lite(在其他客户端上)上看到相同的结果,就像我在第一个浏览器上看到的那样(做“console.dir(obj)”)?有可能吗?

4 个答案:

答案 0 :(得分: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

如果对象包含对象,则可以递归使用序列化函数。

答案 1 :(得分:0)

使用JSON编码对象?

http://json.org/

答案 2 :(得分:0)

最简单的解决方案是序列化为JSON。但是,重要的是要注意JSON不支持所有JavaScript类型。

答案 3 :(得分:0)

这不是一半回答问题,而是真正的交易!

与其他人说的一样,使用JSONimplementation details)来序列化您的数据(因为它被Javascript自然支持并且很轻量级),然后使用AJAX将其发送到您的服务器,也许通过将其发送到PHP脚本,只将其保存到文件或数据库或其他东西。

然后在另一方面,您只需再次使用AJAX接收它,让PHP脚本将该数据返回给您!