我的项目中有一个小问题。我们的项目包括许多带有javascript和$(document).ready的jsps以及执行所有jsps的组合。因此我们不知道$(document).ready的整个数组中的哪个函数将在开始时执行。(我知道,我不小心)。有没有办法在Jquery或javascript中调用函数,它将在$(document).ready函数的宽列表中的任何其他函数之前执行。出现此问题是因为我们被要求在文档准备好后立即添加加载程序,以使用户知道页面未完全加载。如果有任何解决方案,请告诉我。
谢谢和问候, 阿尼尔·西蒙
答案 0 :(得分:2)
保持或释放jQuery的就绪事件的执行。
$.holdReady(true);
$.getScript("myplugin.js", function() {
$.holdReady(false);
});
答案 1 :(得分:1)
HTML页面中的任何脚本都立即执行。如果没有其他原因,脚本应放在身体的末端。在加载完整的HTML树之后,将触发jQuery ready处理程序以及本机DOMContentReady事件,因此HTML中的任何代码都将在之前执行。到目前为止,DOM已经可以访问。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
<script>
$(function(){alert('jq doc ready');});
</script>
</head>
<body>
Page Content
<script>
// script is executed immediately
// no need to put it into a function - anyway... e.g. for encapsulation
(function()
{
alert('not yet loaded'); //executed before DOM ready
})();
</script>
</body>
</html>
答案 2 :(得分:1)
缓冲功能将解决您的问题
$.when( $.getScript(url), $.ready ).done(function(){
// update your code here
});