动态加载 Javascript 对象的性能问题
更快
使用 XMLHTTP Get 请求并比使用 eval() 获取响应文本
使用 JSONP 技术加载脚本然后评估脚本的innerHtml。
将脚本标记动态添加到将 javascript 对象分配给变量的文档的头部?
我的直觉告诉我这应该是选项 3,但我不确定 eval 与使用脚本标签相比如何。 有什么想法吗?
Which is faster,
Using an XMLHTTP Get request and than using eval() for the reponsetext
Using the JSONP technique for loading a script and then evaling the innerHtml of the script.
Dynamically adding a script tag to the head of a document where the javascript object is being assigned to a variable?
My gut tells me this should be option 3, but I am not sure how eval compares with using a script tag. Any thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它可能会根据浏览器和其他一些因素而有所不同,因此我认为如果您确实想要最佳性能,您应该进行一些测试并对其进行分析。 其一,eval() 的性能可能会因您要 eval() 的内容而有很大差异
It could vary based on browser and some other factors so I think if you really want the best performance you should do some tests and profile them. For one, eval() performance can vary tremendously depending on what you are eval()'ing
您应该只使用 JSON2 库 来解析 json 数据,因为使用
eval
是不安全的(使用eval
会导致大量潜在的站点漏洞),它很慢(特别是在较新的 jitting JS 引擎中),最后(以及更多)重要的是)JSON2 库提供的 JSON 对象正在成为 ecma 脚本(例如 javascript)标准的一部分,这意味着浏览器现在正在本地实现 json 解析(和字符串化),从而大大提高了性能。令人高兴的是,如果您使用 JSON2 库,它会检测到 JSON 对象的本机实现的存在,并且不会覆盖它,因此任意使用它将为您提供一个安全的实现,随着浏览器支持的改进,该实现会神奇地变得更快。
You should just use the JSON2 library to parse json data, as using
eval
is unsafe (usingeval
results in a large number of potential site exploits), it's slow (especially in the newer jitting JS engines), and finally (and more importantly) the JSON object provided by the JSON2 library is becoming part of the ecma script (eg. javascript) standard, which means browsers are now implementing the json parsing (and stringification) natively resulting in vastly improved performance.Happily if you use the JSON2 library it detects the existence of a native implementation of the JSON object and doesn't override it, so just arbitrarily using it will give you a safe implementation that will magically become faster as browser support improves.
我同意 JSON2 库可能是进行 eval()'ing 的方法。 但对于传输而言,根据 John Resig 所做的一些分析,JSONP 机制似乎比 XMLHTTPRequest 更快。
http://ejohn.org/blog/native-json-support-is -必填/
I agree JSON2 library is probably the way to go for eval()'ing. But for transport, it looks like the JSONP mechanism is faster than XMLHTTPRequest per some analysis that John Resig has done.
http://ejohn.org/blog/native-json-support-is-required/