我想使用Head JS为我的网页动态加载所有其他脚本。我打算使用CDNJS托管的版本来利用更好的缓存,减少延迟等。
我没有理由认为CDNJS会去任何地方,但即使对于谷歌CDN托管的文件,如jQuery,我也希望包括一个后备。当我使用jQuery时,文件包含在<body>
标记的末尾。由于Head JS的性质,我需要将其包含在我的页面的<head>
中。
在<body>
中,我会使用两行:
<script src="http://cdnjs.cloudflare.com/ajax/libs/headjs/0.96/head.min.js"></script>
<script> window.head || document.write('<script src="js/libs/head-0.96.min.js"><\/script>') </script>
我可以在头部使用同一组线作为后备吗? document.write()
不会覆盖整个页面吗?由于浏览器解析DOM的顺序,脚本在<head>
中存在时是否加载不同?
我对此仍然很陌生,所以任何指导都会非常有用!谢谢!
答案 0 :(得分:0)
正如您可能已经知道的那样,您将不会测试window.jQuery
,但会在head.js中包含一些功能。
此外,您可能不想在此处使用document.write()
两次。
代替document.write()
,试试这个:
function appendScript(url) {
var head = document.getElementsByTagName('head')[0];
var theScript = document.createElement('script');
theScript.type = 'text/javascript';
theScript.src = url;
theScript.onreadystatechange = callback;
theScript.onload = callback;
head.appendChild(theScript);
}
对于网址,请使用您当地的后备广告。