我正在使用 lazyload.js 来延迟加载几个脚本。现在我想要使用一个全站包含文件,告诉 lazyload.js 加载网站中使用的 所有 脚本。然后,我可以让浏览器决定这些脚本是否已经在缓存中或者需要加载它们。
这样可以避免在 js 中进行测试,看看某个内容是否已加载 (并且我愿意接受额外请求带来的开销)。这种方法可行吗?我是否忽略了什么重要的事情?
这样可以避免在 js 中进行测试,看看某个内容是否已加载 (并且我愿意接受额外请求带来的开销)。这种方法可行吗?我是否忽略了什么重要的事情?
我没有基于硬数据,但我认为可以肯定地说,今天使用的浏览器中大约有75~80%的浏览器很好地缓存了脚本。据我所知,有办法强制浏览器不使用缓存的脚本,但既然这不是你想要的,那就没关系了。
是的,事实上,大多数浏览器会引用缓存的脚本,而不是一遍又一遍地请求文件。当然,有些人担心隐私问题,只会在匿名/隐身模式下浏览网页(也称为色情模式)。
这会导致浏览器在关闭浏览器窗口时清除缓存。
为什么你会关心呢?对我来说,当开发我的JS脚本时,我发现这非常有用。
硬刷新就像按ctrl+c一样。我们都已经养成了按这两个键4~5次的习惯,以确保刷新成功。我注意到我的同事们也会用ctrl+F5来做同样的事情...
我已经看到过它按照你所解释的方式运行,也看到过它没有运行。然而,偶尔会出现双重负载的情况,这将使开销更大。
不,这样行不通。
如果你告诉lazyload去加载脚本,那么它会加载脚本。 Lazyload无法访问浏览器缓存,并且无法确定某些资源是否在缓存中。 此外,脚本加载顺序很重要,因此如果先前的javascript文件没有加载,则浏览器无法使用javascript文件。浏览器可以确定javascript文件是否彼此依赖。
如果您考虑仅通过lazyload创建“全部加载”: 最好创建一个JavaScript文件并在页面末尾加载它。
lazyload.js
也是这样做的:它只是加载js文件。 - Dmitry Kaigorodov