[英]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.