2009-05-08 49 views
1

这是更快,性能问题对象

  1. 使用的XMLHTTP GET请求并比使用eval()为reponsetext

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

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

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

+0

也许写出所有3的快速版本并基准结果?尝试使用一个相当大的Javascript对象,以便速度的任何差异都是显而易见的 – Kekoa 2009-05-08 21:59:33

回答

1

它可以根据浏览器和其他一些因素而有所不同,所以我认为如果你真的想要最好的性能,你应该做一些测试和配置文件。其一,eval()函数性能千差万别取决于你是EVAL什么()'荷兰国际集团

0

你应该只使用JSON2 library是不安全的(在大量的潜在使用eval结果解析JSON数据,如使用eval (尤其是在更新的jitting JS引擎中),最后(更重要的是)由JSON2库提供的JSON对象正在成为ecma脚本(例如.javascript)标准的一部分,这意味着现在的浏览器本地实现json解析(和字符串化),从而大大提高了性能。

如果您使用JSON2库,它会检测到JSON对象的本机实现存在并且不会覆盖它,所以只是随意使用它将为您提供一个安全的实现,随着浏览器支持的改进。