1

哪个更快,

  1. 使用 XMLHTTP Get 请求而不是使用 eval() 作为响应文本

  2. 使用 JSONP 技术加载脚本,然后评估脚本的 innerHtml。

  3. 将脚本标记动态添加到将 javascript 对象分配给变量的文档的头部?

我的直觉告诉我这应该是选项 3,但我不确定 eval 与使用脚本标签的比较。有什么想法吗?

4

3 回答 3

1

它可能因浏览器和其他一些因素而异,所以我认为如果你真的想要最好的性能,你应该做一些测试并分析它们。一方面,eval() 的性能可能会因你 eval()'ing 的不同而有很大差异

于 2009-05-08T22:00:38.047 回答
0

您应该只使用JSON2 库来解析 json 数据,因为使用eval是不安全的(使用eval会导致大量潜在的站点漏洞利用),它很慢(尤其是在较新的 jitting JS 引擎中),最后(更重要的是)JSON JSON2 库提供的对象正在成为 ecma 脚本(例如 javascript)标准的一部分,这意味着浏览器现在正在本地实现 json 解析(和字符串化),从而大大提高了性能。

令人高兴的是,如果您使用 JSON2 库,它会检测到 JSON 对象的本机实现的存在并且不会覆盖它,因此只要随意使用它就会为您提供一个安全的实现,随着浏览器支持的改进,它会神奇地变得更快。

于 2009-05-09T00:09:54.880 回答
0

我同意 JSON2 库可能是 eval()'ing 的方式。但是对于传输,根据 John Resig 所做的一些分析,JSONP 机制似乎比 XMLHTTPRequest 更快。

http://ejohn.org/blog/native-json-support-is-required/

于 2009-05-11T17:10:16.987 回答