动态加载javascript文件并确保它们被缓存

时间:2015-06-21 20:42:28

标签: javascript

我想在加载页面后加载我的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);
})();

但我不确定它们是否被缓存。 有没有办法在动态加载脚本时触发事件?

1 个答案:

答案 0 :(得分:1)

您可以通过浏览器的开发人员工具的 network 标签第二次加载页面,轻松检查是否缓存了这些内容。无论文件是否被缓存,您都可以通过加载脚本的方式来判断。

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

如果异步加载,可以将onload事件附加到脚本标记,脚本标记将在脚本加载后立即触发。这适用于任何现代浏览器,包括标准模式下的IE9 +。如果你需要IE8的支持,你将需要做一些额外的工作,这也是$.getScript()的工作。可以在问题'onload' handler for script tag in Internet Explorer中找到有关jQuery功能的深入讨论,以及替代代码片段。