它的功能是所谓的“服务器推送”,谷歌波似乎也在利用。
有人可以通过代码段解释这个概念吗它在网络应用程序中的实际效果如何?
答案 0 :(得分:2)
一些伪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请求,这会产生建立和拆除连接的开销。