繁体   English   中英

动态加载javascript文件并确保将其缓存

[英]Dynamically load javascript files and make sure they are cached

我想在页面加载后加载我的javascript文件,并确保它们已被缓存。

这个问题已经被问了很多,但是他们都建议使用jQuery( $.getScript )加载它,而我要加载的文件之一是jQuery本身,我不能使用jQuery。 有一些选项,例如:

(function(){
  var newscript = document.createElement('script');
     newscript.type = 'text/javascript';
     newscript.async = false;  //as I'm going to execute some functions 
                               //after this I want to make sure that the 
                               //script is fully loaded
     newscript.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js';
  (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(newscript);
})();

但我不确定它们是否已缓存。 动态加载脚本完成后,是否可以触发事件?

通过打开浏览器开发人员工具的“ 网络”标签第二次加载页面,可以轻松地检查它们是否被缓存。 您可以通过脚本加载的方式来判断文件是否已缓存。

顺便说一句,它们应该是。 您基本上是通过JavaScript插入脚本标签,然后加载脚本,就像该标签已经在页面中一样。

如果您使其异步加载,则可以将onload事件附加到脚本标签,脚​​本加载后立即触发。 这应该可以在任何现代浏览器中使用,包括标准模式下的IE9 +。 如果需要对IE8的支持,则必须做一些额外的工作,这也是$.getScript()所做的。 可以在Internet Explorer中脚本标记的“加载”处理程序中找到有关jQuery功能以及其他代码段的深入讨论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM