我有一些 jQuery 代码需要 2 个外部 .js 才能完成加载,然后才能成功完成我需要做的事情,并且$(document).ready
工作不够一致;有时它可以工作,有时它会被外部 .js 代码覆盖。
有什么方法可以确保页面完全加载完成,包括我的 jQuery 执行之前的所有外部 .js?
$(document).ready
只等待 DOM 被加载。要等到页面中的所有资源(包括图像、对象、脚本......)都已(下载)加载,您可以使用window.onload
:
window.onload = function () {
// do stuff
};
当我们对您的项目一无所知时,不可能知道什么是更好的方法,但一般来说,最好在结束</body>
标记之前完成所有脚本加载。然后确保你的 jquery 代码是在它的依赖项之后加载的。
<!DOCTYPE html>
<html lang="en">
<head>
<!-- your head stuff -->
</head>
<body>
<!-- your page markup here -->
<!-- load scripts here -->
<script src="library_with_no_dependencies.js"></script>
<script src="jquery.js"></script>
<script src="library_with_dependency_on_jquery.js"></script>
<script src="your_js_code.js"></script>
<script>
// or you could embed your js here
</script>
</body>
</html>
只需按照您希望它们加载的相同顺序列出它们。使用这种方法,您不需要使用 jquery 的$(document).ready
or window.onload
,并且您的代码将比使用其中任何一种方法更快地执行。
您不想等待加载所有内容,只需加载您的 javascript 代码所依赖的库即可。