哪个更快,
使用 XMLHTTP Get 请求而不是使用 eval() 作为响应文本
使用 JSONP 技术加载脚本,然后评估脚本的 innerHtml。
将脚本标记动态添加到将 javascript 对象分配给变量的文档的头部?
我的直觉告诉我这应该是选项 3,但我不确定 eval 与使用脚本标签的比较。有什么想法吗?
哪个更快,
使用 XMLHTTP Get 请求而不是使用 eval() 作为响应文本
使用 JSONP 技术加载脚本,然后评估脚本的 innerHtml。
将脚本标记动态添加到将 javascript 对象分配给变量的文档的头部?
我的直觉告诉我这应该是选项 3,但我不确定 eval 与使用脚本标签的比较。有什么想法吗?
它可能因浏览器和其他一些因素而异,所以我认为如果你真的想要最好的性能,你应该做一些测试并分析它们。一方面,eval() 的性能可能会因你 eval()'ing 的不同而有很大差异
您应该只使用JSON2 库来解析 json 数据,因为使用eval
是不安全的(使用eval
会导致大量潜在的站点漏洞利用),它很慢(尤其是在较新的 jitting JS 引擎中),最后(更重要的是)JSON JSON2 库提供的对象正在成为 ecma 脚本(例如 javascript)标准的一部分,这意味着浏览器现在正在本地实现 json 解析(和字符串化),从而大大提高了性能。
令人高兴的是,如果您使用 JSON2 库,它会检测到 JSON 对象的本机实现的存在并且不会覆盖它,因此只要随意使用它就会为您提供一个安全的实现,随着浏览器支持的改进,它会神奇地变得更快。
我同意 JSON2 库可能是 eval()'ing 的方式。但是对于传输,根据 John Resig 所做的一些分析,JSONP 机制似乎比 XMLHTTPRequest 更快。