ajax jquery更新div问题

时间:2010-10-05 11:45:10

标签: jquery ajax

我正在尝试使用ajax来更新简单地检查数据库结果的视图

如果找到结果,我的html div将更新为该div中的

部分 如果没有找到结果,它会在一段时间后检查。

代码正在运行,没有if else部分

但客户端浏览器会在某一点崩溃,浏览器被冻结(似乎我将缓存更改为True,它运行正常,是吗?)

我的if else声明用于判断我是否应该再次更新。逻辑是如果我的html div

段我将停止更新。

<script>
        function updateResults() {
            $.ajax({
                type: 'GET',
                url: "/sResultsView",
                cache: true,
                success: function(html){
                    $("#resultsDiv").html(html);
                } 
            });
            window.setTimeout('updateResults()', 4000);
        }
        if($'#resultsDiv:not(:has(p))'){
            updateResults();
        }else {
            return;
        }
        }
    </script>

然而,它一直告诉我语法是错误的,否则,这是我第一次写ajax

有什么建议吗?我做对了吗?或者更好的想法?

非常感谢提前

1 个答案:

答案 0 :(得分:2)

目前您正在创建一个无限循环(或将会是),而是在success回调中安排检查,如下所示:

function updateResults() {
  $.ajax({
    type: 'GET',
    url: "/sResultsView",
    cache: true,
    success: function(html){
      $("#resultsDiv").html(html);
      if($('#resultsDiv p').length == 0) //if not found, run again in 4 seconds
        window.setTimeout(updateResults, 4000);
    } 
  });
}

为了完整起见,您的语法错误在if语句中缺失,在此处:

if($('#resultsDiv:not(:has(p))')){
    ^ ------- missing --------- ^