【发布时间】:2012-07-20 17:05:49
【问题描述】:
我想使用Head JS 为我的页面动态加载所有其他脚本。我打算使用由CDNJS 托管的版本来利用更好的缓存、减少延迟等。
我没有理由认为 CDNJS 会走向任何地方,但即使对于像 jQuery 这样的 Google CDN 托管文件,我也喜欢包含一个后备。但是,当我使用 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() 不会覆盖我的整个页面吗? <head> 中存在的脚本不会因为浏览器解析 DOM 的顺序而不同吗?
我对此还是很陌生,所以任何指导都会非常有帮助!谢谢!
【问题讨论】:
-
document.write 只有在页面加载完成后尝试这样做才会破坏您的文档。内联 document.write 将在页面加载/解析时执行,并将写入的数据按原样插入到文档中。
-
是的,但是 ` 中的 Head JS 加载调用不会在 脚本从 document.write 加载之前触发吗?
-
仅当您将前一个脚本标记标记为
async时。否则同步加载脚本。
标签: javascript external cdn fallback head.js