2010-03-23 4 views
2

В том случае, когда ваш вопрос получил ответ. или у вас появился новый значок, событие срабатывает. Или, когда у вас появился новый PM на форуме, он также позволяет вам узнать, предупредив сообщение.Событие запуска в сценариях на стороне сервера

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

Как это реализовано? Как скрипты знают, что у них есть что-то новое, чтобы показать вам?

ответ

3

Техника программирования, которую вы ищете, называется Comet. Ссылка на wikipedia описывает некоторые реализации этого, но самый простой способ - сделать XMLHttpRequest длинным таймаутом и только вернуть данные об изменении.

+0

Никогда не знал о таких вещах, спасибо. –

+0

+1, потому что это действительно лучшее решение, хотя с StackOverflow они фактически просто опросили. – jvenema

0

Событие происходит, когда другой человек делает что-то вроде голосования по вашему ответу или вопросу. Это записывается на стороне сервера.

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

Пока вы находитесь на сайте, вы можете периодически опроса сервера на предмет изменений. Таким образом, это не сервер, на котором запускается событие.

+0

Как это записывается на стороне сервера? Например, есть два новых ответа на мой вопрос. Как записывается это событие? – Qiao

+0

Вопросы и ответы, комментарии и голоса все хранятся в какой-либо базе данных. По мере взаимодействия с сайтом ваши действия отправляют данные обратно на сервер, который затем сохраняется в базе данных. Когда вы просматриваете сайт, страница может выполнять периодические проверки в фоновом режиме с помощью AJAX, отправив запрос на сервер. Программа на стороне сервера будет искать изменения в базе данных и отправлять результат обратно в браузер, который затем отображает уведомления и т. Д. –

1

В качестве ответа на ваш последний комментарий
Есть несколько способов отметить события как «новые». Это может быть другое поле в таблице базы данных, типа boolean: указание, было ли событие показано пользователю или нет. Или - самый простой - просто время посещения последнего пользователя записывается в сеанс, а затем сравнивается время предстоящего события.

Смежные вопросы