面对现实吧,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。如何检测添加的标记已完成加载和解析?
因此,似乎异步加载也可能包含一个答案。
有什么想法吗?