Я не эксперт по php, поэтому не могу сказать, делаете ли вы это уже, но код на стороне сервера должен принимать параметр, который сообщит ему, с какой даты загружать сообщения.
Затем вы должны иметь переменную в javascript на стороне клиента, указывающую дату / время последнего полученного сообщения. Когда страница загружается, она должна быть нулевой.
Затем вызов showNewStories
отправит на сервер переменную с последней датой-временем. На сервере, если переменная передается на страницу php, она будет возвращать только сообщений, в которых дата и время публикации больше , чем дата / время публикации.
Затем, когда вы получите ответ от сервера, вы можете добавить сообщения в вашу временную шкалу. Когда вы добавляете последний, вы сохраняете , который date time, как дату, которая будет передана на сервер при следующем вызове showNewStories
.
В этой логике есть пробел в том, что если разрешение даты и времени на вашем сервере недостаточно точное, чтобы справиться с частотой количества сообщений, которые он получает, вы можете столкнуться с проблемой, когда сообщение создается на время x
, вы извлекаете список до времени x
, а затем принимается другой пост во время x
. В следующий раз, когда showNewStories
сделает звонок на сервер, вы пропустите второй пост, сделанный во время x
.
Чтобы сделать это пуленепробиваемым, вы должны изменить логику на сервере так, чтобы она включала в себя любые сообщения, в которых время публикации равно дате, прошедшей внутрь. Вы также возвращали бы уникальный идентификатор для каждого сообщения, возвращенного клиенту .
Затем, на стороне клиента, когда вызывается обратный вызов getJSON
, вы должны включить любые элементы, где время отправки сообщения больше, чем время, отправленное на сервер или . дата и время совпадают, а идентификатор записи, возвращенный с сервера, еще не указан в списке (я рекомендую включить идентификатор записи в списке в качестве атрибута данных ).