ajax长链接实时更新,Ajax长链接和SignalR(刷新客户端数据)的区别 ajax实现长链接...

$(function () {

(function longPolling() {

$.ajax({

url: "${pageContext.request.contextPath}/communication/user/ajax.mvc",

data: {"timed": new Date().getTime()},

dataType: "text",

timeout: 5000,

error: function (XMLHttpRequest, textStatus, errorThrown) {

$("#state").append("[state: " + textStatus + ", error: " + errorThrown + " ]
");

if (textStatus == "timeout") { // 请求超时

longPolling(); // 递归调用

// 其余错误,如网络错误等

} else {

longPolling();

}

},

success: function (data, textStatus) {

$("#state").append("[state: " + textStatus + ", data: { " + data + "} ]
");

if (textStatus == "success") { // 请求成功

longPolling();

}

}

});

})();

});

上面这段代码就是采用Ajax的方式完成长链接,主要优势就是和服务器始终保持一个链接。若是当前链接请求成功后,将更新数据而且继续建立一个新的链接和服务器保持联系。若是链接超时或发生异常,这个时候程序也会建立一个新链接继续请求。这样就大大节省了服务器和网络资源,提升了程序的性能,从而也保证了程序的顺序。

SignalR 消息推送

关于如何使用SignalR服务推送数据到客户端在上一篇文章中已经写了详细的案例,不了解的能够先去了解SignalR的实现方式。javascript

关于二者的区别(我的看法,不正确的地方请指出):html

Ajax长链接:java

Ajax长链接是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”实际上是有中止的,只是咱们人眼没法分辨是否中止,它只是一种快速的停下而后又当即开始链接而已。jquery

主要优势就是和服务器始终保持一个链接。若是当前链接请求成功后,将更新数据并继续建立一个新的链接和服务器保持联系。若是链接超时或发生异常,这个时候程序也会建立一个新的链接继续请求,这样就大大节省了网络和服务器资源,提升了程序的性能,从而也保证了程序的顺序。ajax

SignalR:服务器

不须要客户端发出请求,服务器只要发现有了新的数据,当即调用客户端获取数据的方法,从而实现把新的数据推送到客户端展现出来。博主百度百科了一下更专业的说法实际上是:网络

当所链接的客户端变得可用时,服务器代码能够当即向其推送内容,而不是让服务器等待客户端请求新的数据。mvc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值