Функциональность сообщений на стороне клиента - PullRequest
1 голос
/ 24 августа 2010

Как создается иллюзия того, что сайт меняет контент со стороны сервера?Пусть в качестве примера будет чат Gmail или чат на Facebook.Или даже новое сообщение о переполнении стека.

Это сделано http://en.wikipedia.org/wiki/Comet_(programming))?

Спасибо за помощь

Ответы [ 3 ]

4 голосов
/ 24 августа 2010

Подобные вещи обычно выполняются с помощью блока JavaScript, запускаемого снова и снова в соответствии с таймером.Он будет проверять состояние вещей в базе данных и что-то корректировать в разметке.Например, измените класс CSS какого-либо элемента, чтобы ввести другой цвет или жирный шрифт, замените изображение изображением, выполненным в более ярком цвете и т. Д. Довольно просто на самом деле.Никакой магии не происходит.

0 голосов
/ 24 августа 2010

Если вам действительно не нравится подход javascript, вы можете написать Java-апплет, который работает так, как вам кажется, поддерживая открытое соединение с сервером.Но это тяжелое решение проблемы, которая обычно является легкой.

0 голосов
/ 24 августа 2010

Клиентская сторона должна «опросить» сервер на предмет изменений. то есть вызов Ajax на основе таймера, который каждые 15 секунд проверяет сервер на наличие новых данных и выполняет действия на основе результата.

очень свободный пример:

setTimeout('checkMessages()',15000);

function checkMessages() {
    //using jquery
    $.get( .......... , function (data) { if (data == "newmsg") { $('#newmsgind').blink(); });
    setTimeout('checkMessages()',15000);
}

Веб-браузеры не поддерживают соединение с сервером. Вы тянете страницу и все. Ajax допускает непрерывную асинхронную связь, но всегда клиент инициирует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...