Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 性能<;脚本>;Vs eval()_Javascript_Performance - Fatal编程技术网

Javascript 性能<;脚本>;Vs eval()

Javascript 性能<;脚本>;Vs eval(),javascript,performance,Javascript,Performance,我正在做一个很大的水疗中心。精简后的javascript代码超过1MB。有一个相当复杂的缓存机制来减少用户必须进行的下载量,但在基本级别上,它的工作原理如下: 当用户第一次访问该站点时,javascript将被下载并作为字符串保存到浏览器本地存储中。当用户稍后返回时,将从本地存储中检索字符串,并使用eval()进行计算 我的问题是:向DOM添加包含javascript字符串的脚本标记会更快吗?还是eval()更快?还是真的没有区别 我已经尝试了这两种方法,使用脚本标记似乎更快,但由于我们处理的时

我正在做一个很大的水疗中心。精简后的javascript代码超过1MB。有一个相当复杂的缓存机制来减少用户必须进行的下载量,但在基本级别上,它的工作原理如下:

当用户第一次访问该站点时,javascript将被下载并作为字符串保存到浏览器本地存储中。当用户稍后返回时,将从本地存储中检索字符串,并使用eval()进行计算

我的问题是:向DOM添加包含javascript字符串的脚本标记会更快吗?还是eval()更快?还是真的没有区别

我已经尝试了这两种方法,使用脚本标记似乎更快,但由于我们处理的时间大约为100毫秒,我不能仅仅通过观察它的加载来确定


对于哪种方法更快,是否有明确的答案?如果不是,那么最好的测量方法是什么?在计算脚本并调用javascript字符串最后一行中的console.timeEnd()之前,我已经尝试调用console.time()。这是最好的方法吗?脚本标记方法在这里似乎也更快,但我不确定这是否是一个有效的测试。

因为这是一个大型应用程序,使用eval是个坏主意,为什么不使用健全的HTTP缓存头并让浏览器完成它应该做的工作?不要使用
localStorage
编写自己的缓存机制!您是
document.write
ing脚本还是使用DOM方法?在任何情况下,
eval
都要简单得多,并且具有更一致的跨浏览器行为。与脚本标记方法相比,我更喜欢这种方法。在本地存储中存储js文件是一种糟糕的做法。若用户访问了您的站点,而您进行了部署,则更改不会反映出来。我建议您将js拆分为模块,并动态加载这些模块。@Keith:应该没有任何区别。我猜
eval
更快,因为它不涉及DOM,但差异应该可以忽略不计。在任何情况下,此决定都不会对页面加载速度产生任何影响。