让我们面对它,jQuery/jQuery-ui是一个沉重的下载。
谷歌推荐使用deferred loading of JavaScript来加速初始渲染。我的页面使用jQuery来设置一些标签,这些标签放在页面的下方(大多数不在初始视图之外),我想将jQuery推迟到页面呈现之后。
谷歌的延迟代码通过挂接到body 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之后。如何检测添加的标签是否已完成加载和解析?
作为推论,asynchronous loading似乎也可能包含一个答案。
有什么想法吗?
https://stackoverflow.com/questions/5852767
复制相似问题