Ajax JQuery обновление Div проблема - PullRequest
2 голосов
/ 05 октября 2010

Я пытаюсь использовать ajax для обновления представлений, которые просто проверяют результаты в базе данных

, если найдены результаты, мой html div будет обновляться секцией

в этом div, если не найденрезультат, он проверит через некоторое время.

код работает без, если секция 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 Ответ

2 голосов
/ 05 октября 2010

В настоящее время вы создаете бесконечный цикл (или будет), вместо этого запланируйте проверку внутри вашего 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 --------- ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...