以下代码是.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加载的?哪个优先,浏览器是否可以以并行方式同时加载它们?
谢谢