我想在加载页面后加载我的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);
})();
但我不确定它们是否被缓存。 有没有办法在动态加载脚本时触发事件?
答案 0 :(得分:1)
您可以通过浏览器的开发人员工具的 network 标签第二次加载页面,轻松检查是否缓存了这些内容。无论文件是否被缓存,您都可以通过加载脚本的方式来判断。
顺便说一句,他们应该是。您基本上是通过JavaScript插入脚本标记,然后加载脚本,就像标记已经在页面中一样。如果异步加载,可以将onload
事件附加到脚本标记,脚本标记将在脚本加载后立即触发。这适用于任何现代浏览器,包括标准模式下的IE9 +。如果你需要IE8的支持,你将需要做一些额外的工作,这也是$.getScript()
的工作。可以在问题'onload' handler for script tag in Internet Explorer中找到有关jQuery功能的深入讨论,以及替代代码片段。