AJAX Jquery обновляет ВЕСЬ контент, но я хочу только НОВЫЙ контент - PullRequest
0 голосов
/ 21 апреля 2011

Возможно, я заново изобретаю колесо, но это намеренно. Я пытаюсь создать приложение для чата в реальном времени, используя PHP HTML MySQL CSS. Он работает довольно хорошо по сети и захватывает новый контент каждую секунду. В IE вы можете заметить мерцание каждую секунду, по-видимому, он извлекает все эти данные снова и снова, даже если нет нового контента, и мне это не нравится.

Вот мой обновленный код JS:

 $(document).ready(function() {
     $("#data").load("data.php");
   var refreshId = setInterval(function() {
      $("#data").load('data.php');
   }, 1000);
   $.ajaxSetup({ cache: false });
});

data.php просто просматривает все записи базы данных и показывает их:

    while ($row = mysql_fetch_array($result))
    {
    echo "<p><b>". $poster ."</b>: ". $message ."<br /><span style='font-size: 10px;'>". date('D d M - g:i:s a', strtotime($row['when'])) ."</span></p>";
    }

Я искал и искал в Интернете решения, исчезновение и т. Д., Я не могу придумать, как этого добиться, конечно, есть какой-то хороший, простой и эффективный способ?

Ответы [ 3 ]

1 голос
/ 21 апреля 2011

Вы должны передать отметку времени серверу последнего обновления и получать только новый контент.

0 голосов
/ 26 апреля 2013

Это то, что вам нужно, вам нужно только изменить его для своих нужд:

Обновлять содержимое div только в случае добавления нового контента в базу данных

Это пройдет время, когда страница была загружена, и обновит данные, только если новый контент был добавлен, см. Первый ответ.

Всего наилучшего;).

0 голосов
/ 21 апреля 2011

Лучшее решение, которое я лично использую в своих кричалках, - это установить переменную в загруженных данных с помощью глобальной переменной.

Пример:

<script type="text/javascript">
var global_var = 1234;
</script>
<p>HTML CONTENT GOES HERE</p>

Затем, когда вы вызываетеdata.php Вы можете вызвать его с помощью этого нового параметра.

$("#data").load('data.php?var=' + global_var );

Ваш global_var может быть любым, от последнего введенного идентификатора или последней отметки времени, или ???

...