$ .ajax是否替换$(document).ready(function()?

时间:2015-05-09 18:26:20

标签: javascript php jquery ajax

我已经进行了彻底的搜索,但是我无法找到关于我的假设的明确内容。我使用了以下代码:

<?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 =&#34; results_ribbon&#34;由于#results_ribbon不存在,所以没有正确的内容。但是,一切正常。这导致我假设$ .ajax调用等待在DOM加载后执行。我对吗?如果不是为什么会发生上述情况?

2 个答案:

答案 0 :(得分:1)

不,这不对。调用后立即启动实际的Ajax请求。 但成功回调会在获得服务器响应后一段时间后触发。 到那时你已经在DOM中加载了#results_ribbon。

答案 1 :(得分:1)

Ajax请求不会立即返回结果,有延迟。此延迟可能或可能足够长,无法创建“results_ribbon”div。

可以肯定的是,只需在$(function(){ (...) });中包含ajax调用,这是$(document).ready的简写。