我已经进行了彻底的搜索,但是我找不到关于我的假设的明确信息。我使用了以下代码:
<?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 代码位于上述代码之后...
因此,我希望 id="results_ribbon"的 div 没有正确的内容,因为 #results_ribbon 尚不存在。然而,一切都很好。这让我假设 $.ajax 调用等待 DOM 加载后执行。我对吗?如果不是为什么会发生上述情况?
最佳答案
不,这不正确。实际的 Ajax 请求在您调用后立即启动。 但成功回调会在收到服务器响应后一段时间触发。 到那时,您已经将 #results_ribbon 加载到 DOM 中。
关于javascript - $.ajax 是否替代 $(document).ready(function()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143542/