博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 JavaScript 将网站后台的数据变化实时更新到前端-【知乎总结】
阅读量:7081 次
发布时间:2019-06-28

本文共 772 字,大约阅读时间需要 2 分钟。

问:

难道只能设置定时器每隔一秒通过 Ajax 向后台请求数据来实现吗?

答:

1、

nodejs的 支持上述 李宏训 所说的三种方式,另外还支持 Flash Socket、隐藏IFrame、JSONP Polling等方式。 提供前端和服务器端的配套机制,并兼容各种浏览器,它的前端js模块会判断浏览器的能力,自适应选择最合适的Comet方式。
 
2、
我知道有三种方式: 1,ajax短连接:客户端每隔一秒钟发一次请求,服务器收到请求后会立刻返回结果,不管有没有新数据。 2,ajax长连接:客户端发送一次请求,服务器端收到请求后查询有没有新数据,如果没有新数据就阻塞这个请求,直到有新数据或者超时为止。客户端每次收到请求返回结果后立刻再发一次请求。comet貌似就是这个原理。 3,WebSocket:这就不是一个HTTP协议了,而是一个tcp协议,而且Socket这个玩意顾名思义就是一个流了,可以双向操作。缺点是有些浏览器不支持。
对比延迟: 假设网络延迟是m毫秒,那么ajax短连接的延迟在m到1000毫秒之间,另外两种基本只有m毫秒的延迟。 对比资源占用: 应该是1>2>3。但是1和2的比较要看情况,如果两次请求间隔时间很长的话应该是2>1>3。
 
3、
用comet,其实也是ajax 了。 只是前端发送一个请求后,服务端保持这个请求。有数据就事实返回。没数据就一直保持这个连接。你会说如果连接断了、超时呢,断了就再发起。
 
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
链接:http://www.zhihu.com/question/20255036/answer/14502842
来源:知乎

转载于:https://www.cnblogs.com/visionfeng/p/5164414.html

你可能感兴趣的文章
Mac OSX操作系统安装和配置Zend Server 6教程(4)
查看>>
python进阶学习路线(全)
查看>>
浏览器加载与渲染
查看>>
HTTP常见错误返回代码
查看>>
安装homeassistant+python3.6
查看>>
老李分享:JDK,JRE,JVM区别与联系 1
查看>>
CentOS 7 上systemctl 的用法
查看>>
Android Design框架
查看>>
[Linux] 在 Linux CLI 使用 ssh-keygen 生成 RSA 密钥
查看>>
在 Ubuntu 16.04 Server 上安装 Zabbix
查看>>
Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(九)ftp服务
查看>>
oracle 存储过程的基本语法
查看>>
程序员应该遵守的编程原则
查看>>
各操作系统配置NTP
查看>>
使用mysql索引技巧及注意事项
查看>>
按照发起的方式,DDoS可以简单分为三类
查看>>
2月新书,送出一本你爱的!
查看>>
2018LinuxCon,开源界的大咖们来了,赶紧行动!
查看>>
10月24日程序员关爱日
查看>>
python函数定义
查看>>