运行Javascript并加载DOM

时间:2015-09-13 13:28:30

标签: javascript ajax dom

以下代码是.php文件的一部分。另一个php文件ribbon.php,使用json格式通过ajax调用返回数据。每当我运行此代码时,一切都很好。但是, results_ribbon 实际上并不存在于此特定代码点中。当然,由于ajax调用是异步的,因此代码不会等待ajax完成并继续随后的DOM加载。当函数 callit 到达事件队列时, results_ribbon 已经存在,所以没问题。

...   
 <script type="text/javascript">  
          $.ajax({
            method:"POST",
            dataType: 'json',
            url:"ribbon.php",
            success: function callit(data) {
                if (data === "nothing")          
                   return;
                $("#results_ribbon").text(data); 
            }   
          });
</script>       
...
<div id="results_ribbon"></div>
 ...

但是,为了深入了解其工作原理,我已将上述代码更改为:

<script type="text/javascript">  
              $.ajax({
                method:"POST",
                dataType: 'json',
                url:"ribbon.php",
                success: function callit(data) {
                    if (data === "nothing")          
                       return;
                    $("#results_ribbon").text(data); 
                }   
              });
    var ms = 5000 + new Date().getTime();
       while (new Date() < ms)
         {}
    </script>     

有了这个,我给ajax调用完成了时间,我认为事件循环优先于 callit 而不是DOM,因此 results_ribbon &#39 ; d不明。但是,我的想法只适用于Chrome;在Mozilla和IE中,一切都像第一种情况一样继续运行!我无法推断出某些事情......

有人可以向我解释或指出一些阅读资源,当Javascript代码在同一个文件中共存时,它们究竟是如何干扰DOM加载的?哪个优先,浏览器是否可以以并行方式同时加载它们?

谢谢

0 个答案:

没有答案