JS事件监听器的成本是否高于额外的HTTP请求?

时间:2016-01-16 02:54:08

标签: javascript jquery ajax events javascript-events

我听说最好将所有Javascript压缩到一个文件中,以减少应用程序发出的HTTP请求数。但是,如果您使用每个特定于网站的一个页面的事件侦听器,这是否适用?

例如,假设我有3个不同的页面,这些页面使AJAX请求从服务器加载随机图片。第一个页面侦听按钮单击,第二个页面侦听鼠标悬停,第三个页面侦听select字段值的更改。有一个包含所有DOM操作逻辑的巨型JS文件以及事件监听器是否有意义?或者更好的是在一个文件中定义所有必要的DOM操作逻辑,然后为每个页面提供一个小的JS文件,并为该页面提供特定于页面的事件监听器。

TL; DR:对于页面上不存在的元素,事件侦听器的性能是否比其他JS文件的HTTP请求的成本更高?

1 个答案:

答案 0 :(得分:1)

减少请求数是将JavaScript文件合并为一个的一个原因。

另一个原因是:在浏览器只下载一次后,JavaScript文件可以在后续页面使用时从浏览器缓存中检索。更少的文件意味着更简化的缓存。

一点点额外JavaScript的成本很低。附加到没有DOM元素的Jquery样式侦听器仅在onload方法尝试附加它们时花费。

这样做很简单。当您每小时有数千万次页面浏览时,是时候进行您的问题提到的那种优化。

如果更容易,可以轻松地内联少量甚至中等数量的JavaScript。例如,在搜索引擎的前门页面上查看源代码。