Понимание кометы на примере - PullRequest
5 голосов
/ 19 января 2010

Его функция называется так называемым «продвижением сервера», которое, похоже, использует и волна Google.

Может кто-нибудь объяснить эту концепцию фрагментом кода как она на самом деле работает в веб-приложении?

1 Ответ

2 голосов
/ 19 января 2010

Некоторые псевдо-javascript:

<script>
//open connection to the server, updateFunc is called every time server sends stuff
//For example ticker price for Google (GOOG)
var connection = CometLibrary.subscribe("http://server", "GOOG", updateFunc);

//data is JSON-encoded
function upudateFunc(data) {
  var elem = $("#GOOG .last");
  if (elem.value < data.last)
    elem.css("color", "green");
  else (elem.value > data.last)
    elem.css("color", "red");
  elem.value = data.last;
}

</script>
<span id="GOOG">GOOG: <span class="last"></span></span>

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

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

...