Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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代码?_Javascript_Jquery - Fatal编程技术网

浏览器是否“打开”;“缓存”;javascript代码?

浏览器是否“打开”;“缓存”;javascript代码?,javascript,jquery,Javascript,Jquery,我正在微调一个重jquery的页面,无意中发现了这个网站: 当我第一次单击“运行测试”按钮时,数字远远高于随后的单击。这是因为浏览器缓存了JS吗?有人能解释一下这是如何在内部工作的吗?用户可以选择不缓存JS吗?外部javascript文件被缓存,当然,包含脚本标记的html也可以被缓存。 您看到的可能是html缓存或某些浏览器优化的结果。您应该尝试不同的浏览器,关闭和重新打开浏览器并清除浏览器的缓存。无论是否缓存JavaScript代码,执行性能都不会受到影响。您看到的是jQuery缓存选择器

我正在微调一个重jquery的页面,无意中发现了这个网站:


当我第一次单击“运行测试”按钮时,数字远远高于随后的单击。这是因为浏览器缓存了JS吗?有人能解释一下这是如何在内部工作的吗?用户可以选择不缓存JS吗?

外部javascript文件被缓存,当然,包含脚本标记的html也可以被缓存。
您看到的可能是html缓存或某些浏览器优化的结果。您应该尝试不同的浏览器,关闭和重新打开浏览器并清除浏览器的缓存。

无论是否缓存JavaScript代码,执行性能都不会受到影响。您看到的是jQuery缓存选择器查询的结果,这样它们就不会在后续运行中花费那么长的时间。

在Firefox 3.5中,我第二次看到的数字(明显)不同。OTOH,它们在IE 8中相当一致(非常慢)。Firefox3.5的JavaScript解释器将JS编译为可执行代码。所以第一次比较慢是有道理的;代码还没有进行JIT。

您看到的性能提升可能是由于您的javascript解释器。大多数较新的web浏览器使用JIT编译javascript引擎,因此可以优化多次使用的代码路径


阅读Safari的javascript引擎是如何实现许多加速的。

如果你点击“重新加载”,你的速度会再次变慢,因此这不是因为文件被缓存。他看到的是jQuery缓存选择器查询结果。Elijah,我不确定这是真的。在Firebug分析器中运行它并比较结果;jQuery在第一次和第二次运行时的执行代码时间是相似的。如果这是造成差异的主要原因,我希望在IE 8中看到类似的行为。在后续运行中没有性能提升。在5种不同的浏览器(和2种不同版本的IE)中测试,从第一次运行到所有后续运行,这个数字都是稳定的。这家伙可能在第一次测试中加载了很多CPU,并认为这与缓存有关。哈夫纳德,你和我看到了不同的结果。在Firefox 3.5上,我看到第二次和所有后续运行的执行速度都在不断加快。在Google Chrome中,我也看到了同样的行为(第二次和后续运行的执行速度也在不断加快)(虽然速度没有那么快;Chrome一开始就更快)。我在5个浏览器中的所有测试都返回了稳定的值。我猜想您的第一次测试速度较慢,因为您在第一次测试的同时加载了其他内容。给定链接已断开