получить json со страницы обновления с помощью ajax - PullRequest
1 голос
/ 15 февраля 2012

У меня есть страница index.php, которая делает ajax-вызов thread.php, отправляя переменную «dateposted». Thread.php возвращает json, который проходит через мой index.php, и последнее значение снова отправляется обратно в вызов ajax. Все это прекрасно работает. Однако проблема, с которой я сталкиваюсь, заключается в том, что я помещаю файл thread.php в автообновление, используя

<meta http-equiv="refresh" content="2">

Когда я делаю это, возвращаемый ответ в моем вызове ajax включает это и результаты json, которые сбрасывают цикл в массиве json. Я могу удалить приведенный выше код, так как мне нужно, чтобы thread.php постоянно обновлялся для опроса данных с сервера. Как мне обойти эту проблему:

Для справки: thread.php

<meta http-equiv="refresh" content="2">
if(!isset($_GET['dateposted']))
{ $lastpost = 0; 
}
else
{$lastpost= $_GET['dateposted'];}



  $latestmsgs = retrieveNewMsgs($lastpost,$currtime);
  ?>

 <?php echo json_encode($latestmsgs);?>

index.php

var returnValue = (function() {
    var  dateposted = null;
    return function() {
        $.get("thread.php", { "lastMessage":  dateposted }, function(result) {
        if(result) {

                        for (var i = 0, len = result.length; i < len; i++) {

                            var msgs = result[i];
                            var newDiv = $("<div><img src='" + msgs[0] +"'/>" + msgs[2] + msgs[3] + msgs[4] + msgs[5] + "</div><br>");

                           $('#chatContents').append(newDiv);

                        }

                }

           dateposted = result[result.length-1][5];
        }, "json");
    }
})();

1 Ответ

1 голос
/ 15 февраля 2012

Вы можете использовать функцию window.setInterval для выполнения некоторого кода JavaScript через регулярные интервалы времени, которые вы определяете.Так что удалите мета-тег обновления и поместите ваш AJAX-вызов внутри setInterval:

// poll the server every 10 seconds for new data
window.setInterval(function() {
    $.get("thread.php", ...
}, 10000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...