让我们面对现实吧,jQuery/jQuery-ui 下载量很大。
Google 建议延迟加载 JavaScript以加速初始渲染。我的页面使用 jQuery 来设置一些位于页面较低位置的选项卡(大部分在初始视图之外),我想将 jQuery 推迟到页面呈现后。
Google 的延迟代码在页面加载后通过挂钩主体 onLoad 事件向 DOM 添加一个标记:
<script type="text/javascript">
// Add a script element as a child of the body
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "deferredfunctions.js";
document.body.appendChild(element);
}
// Check for browser support of event handling capability
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
我想以这种方式推迟 jQuery 的加载,但是当我尝试它时,我的 jQuery 代码未能找到 jQuery(这对我来说并不完全出乎意料):
$(document).ready(function() {
$("#tabs").tabs();
});
所以,似乎我需要找到一种方法来推迟我的 jQuery 代码的执行,直到 jQuery 被加载。如何检测添加的标签是否已完成加载和解析?
作为推论,异步加载似乎也包含一个答案。
有什么想法吗?