我已经做了彻底搜查,但是我无法找到明确的关于我的假设我。以前用过下面的代码:
<?php
session_start();
if (isset($_SESSION['valid_user']) && $_SESSION['from']==1)
{
?>
<script type="text/javascript">
$.ajax({
method:"POST",
dataType: 'json',
url:"user.php",
success: function(newdata) {
if (newdata == "nothing")
{
var temp1 ="no data!";
$("#results_ribbon").text(temp1);
return;
}
var temp1 ="You have: ".concat(newdata);
$("#results_ribbon").text(temp1);
}
});
</script>
这是一个PHP文件的一部分。它建立在上面的代码后的DOM如下的HTML代码...
所以,我期望的div id为“results_ribbon”不要有因为#正确的内容results_ribbon不存在,但是,一切正常,这导致我假定$ .ajax调用等待DOM加载后执行,我是对吗?如果不是为什么会发生上述情况?
.ajax和.ready是两个不同的函数,ajax执行ajax请求,准备好在DOM完全加载时执行函数。它可以工作,因为ajax请求需要时间才能完成(它的异步),所以DOM有时间加载。如果向ajax选项添加'async:false',则应该失败 –
在调用'.ready()'之前需要等待“$ .ajax()'完成吗? – guest271314