它的特点是所谓的“服务器推送”,Google Wave 似乎也在利用这一特性。
有人能够通过代码片段解释一下这个概念在Web应用程序中是如何工作的吗?
它的特点是所谓的“服务器推送”,Google Wave 似乎也在利用这一特性。
有人能够通过代码片段解释一下这个概念在Web应用程序中是如何工作的吗?
一些伪 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请求,这样会增加建立和断开连接的开销。
CometLibrary
是如何实现的?如果请求的连接还没有完成,客户端会如何获取响应呢? - user198729