我在网上搜索过,找到了一些答案,但都不起作用。我想要的就是让我的网站加载得更快。我缩小了我的形象。现在我使用的是jquery和google托管的旧版本。虽然它不是托管在我的网站上,但它是网站中最重的文件(32kb),它在任何其他图像之前加载第二行。我尝试过在body结束标记前添加一个javascript,如下所示:
<script language="javascript">
var e=document.createElement('script');
e.setAttribute('type','text/javascript');
e.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js');
document.body.appendChild(e)
var f=document.createElement('script');
f.setAttribute('type','text/javascript');
f.setAttribute('src','myjs.js');
document.body.appendChild(f)
</script>
在firebug控制台上,它显示jquery是最后加载的。然而,它也显示了未捕获的引用错误$ not defined,我猜这是当jquery没有正确加载时得到的错误。
如果我将这两个js文件放在head标记中,一切都会正常工作。
我如何才能完成这项任务?
谢谢。
发布于 2013-04-16 15:05:28
动态加载javascript文件会导致它们被异步加载,因此您不能保证哪个库将首先加载。如果您需要强制执行顺序(就像您对jQuery这样的库所做的那样),您将需要将带有src
属性的script
标记添加到页面,如下所示:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="myjs.js"></script>
如果您将脚本标记作为body
元素而不是head
中的最后一个元素添加,则会给出加载速度更快的外观(渐进式增强)。
编辑正如其中一位评论者所说,您可以阅读this question的答案以获取更多详细信息。
发布于 2018-08-31 03:42:40
我无法在特定系统中强制执行脚本顺序,而我可以通过使用addEventListener
包装我的jQuery代码来解决这个问题
<script><!--
(function() {
'use strict';
window.addEventListener('load', function() {
// All resources loaded
$('#my-selector').on('click', function(event){
//Do something
});
}, false);
})();
//--></script>
这允许我在文档底部加载jQuery,并且仍然在我的代码中使用'$‘,在需要的地方在DOM的更高位置。不是所有情况下的完美解决方案,但达到了我的目的;)
https://stackoverflow.com/questions/16040284
复制相似问题