ajax客户端和服务端,使用JavaScript的AJAX和客户端 - 服务器体系结构

有几种不同的方法来实现这一点。其中一些已经在这里得到了答复,但我想包括几个以及我的想法。

1。轮询

经常请求服务器检查新信息。这是做这件事最糟糕的方式,但可能是最简单的方法。如果您的网站用户数量较少,则可以这样做。

这可以通过在javascript中使用setInterval(myFunction, n)将XMLHttpRequests发送到服务器,每n毫秒来完成。然后,在服务器上,您可以使用新信息(当您拥有该信息时)或某种意味着没有新信息的消息来回应。

2.长轮询

当加载页面时,它向服务器对新信息的请求。服务器保持连接处于打开状态,直到有东西要发回。此方法减少了使用的网络流量,但增加了服务器上使用的资源。您可以将其用于少数用户,但不能很好地扩展。

最简单的方法是让处理AJAX请求的页面等待新信息可用,然后进行响应。这可能会在您的服务器上连接很多连接。所以,小心使用。

3 COMET

COMET基本上是长轮询,但服务器的设置是否正确吧。它知道这些连接不是“真实的”,并且使用较少的资源来处理它们。这对于这个问题是一个很好的解决方案,但它需要为此目的明确设置服务器。 COMET服务器和COMET插件用于其他流行的服务器,但它需要一些设置,有时还需要一些钱。

在.NET上实现它并不是世界上最简单的事情。您可以为解决方案付费,尝试找到别人的代码来做类似的事情,或者尝试自己编写代码。我还没有找到任何像样的免费解决方案。如果有其他人,请发表评论。

4. RIA

另一种解决方案是包含Flash,Silverlight或Java小程序在页面上。人们通常通过使用1x1对象来实现这一点,以便他们可以使用Flash或Silverlight与服务器交谈。如果你不介意添加依赖项,这是一个体面的解决方案。如果您已经了解Silverlight或Flash,那么实施起来可能会相对简单。

你可以在互联网上找到这些选项的教程。

5.网络套接字

如果您在刀刃上,你可以看看Web Sockets。它只适用于最新版本的现代浏览器。它是HTML5的一部分,但现在它可能是它自己的规范。无论如何,这意味着旧版浏览器将无法处理它。但是,如果您不介意限制自己使用最新的浏览器,则可以使用这个惊人的功能。

我相信Chromium是目前唯一支持它的浏览器。但是,在Firefox和WebKit中正在执行这些工作。

我会免去你的争议,并简单地说,这就是你想要的。规范的摘要说明了这一切。

该规范定义了一个API,使Web页面能够使用Web Sockets协议与远程主机进行双向通信。

特别表扬

如果您有兴趣节点JS的世界里,你不能去错Socket IO。它将实现浏览器可用的最佳技术。

结论

最好的办法是Socket.IO在节点JS。但是,对于ASP.Net解决方案,如果可以,请转到COMET或Web套接字。否则,使用Flash/Silverlight并不可怕。最后,投票和长时间投票应该是最后的选择。您可以始终支持其中一种,如果在客户端浏览器中不支持它,则可以回退到另一种。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值