我正在考虑为Javascript创建一个简单的远程调试应用程序。实际上,我想为Firebug Lite提供一个对象,让它完成所有工作。
那么,我可以从一个页面获取一个对象,将其序列化,将其发送到服务器然后再发送到另一个浏览器,最后在Firebug Lite(在其他客户端上)上看到相同的结果,就像我在第一个浏览器上看到的那样(做“console.dir(obj)”)?有可能吗?
答案 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编码对象?
答案 2 :(得分:0)
最简单的解决方案是序列化为JSON。但是,重要的是要注意JSON不支持所有JavaScript类型。
答案 3 :(得分:0)
这不是一半回答问题,而是真正的交易!
与其他人说的一样,使用JSON(implementation details)来序列化您的数据(因为它被Javascript自然支持并且很轻量级),然后使用AJAX将其发送到您的服务器,也许通过将其发送到PHP脚本,只将其保存到文件或数据库或其他东西。
然后在另一方面,您只需再次使用AJAX接收它,让PHP脚本将该数据返回给您!