客户端消息功能

时间:2010-08-24 13:50:47

标签: c# javascript asp.net ajax

如何导致网站从服务器端更改内容?让这个例子成为gmail聊天或在Facebook上聊天。甚至新的消息都会在堆栈溢出上签名。

是由http://en.wikipedia.org/wiki/Comet_(programming)完成的吗?

感谢您的帮助

3 个答案:

答案 0 :(得分:4)

这种事情通常是根据计时器一次又一次地触发JavaScript来完成的。它将检查数据库中的事物状态并调整标记中的内容。例如,更改某些元素的CSS类以引入不同的颜色或粗体字体,用更亮的颜色替换图片等等。非常简单。没有任何魔法。

答案 1 :(得分:0)

客户端必须“轮询”服务器以进行更改。即基于计时器的Ajax调用,每隔15秒检查一次服务器以获取新数据,并根据结果采取措施。

非常宽松的例子:

setTimeout('checkMessages()',15000);

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

Web浏览器并不真正保持与服务器的连接。你拉一页就是这样。 Ajax允许连续的异步通信,但始终是客户端启动。

答案 2 :(得分:0)

如果你真的不喜欢javascript方法,你可以编写一个Java applet,它以你喜欢的方式工作,保持与服务器的开放连接。但这是通常轻量级问题的重量级解决方案。