需要在页面加载后立即调用函数

时间:2016-12-09 06:33:34

标签: javascript jquery html jsp

我的项目中有一个小问题。我们的项目包括许多带有javascript和$(document).ready的jsps以及执行所有jsps的组合。因此我们不知道$(document).ready的整个数组中的哪个函数将在开始时执行。(我知道,我不小心)。有没有办法在Jquery或javascript中调用函数,它将在$(document).ready函数的宽列表中的任何其他函数之前执行。出现此问题是因为我们被要求在文档准备好后立即添加加载程序,以使用户知道页面未完全加载。如果有任何解决方案,请告诉我。

谢谢和问候, 阿尼尔·西蒙

3 个答案:

答案 0 :(得分:2)

尝试jQuery.holdReady()

  

保持或释放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 });