当前位置: 首页 > news >正文

使用 JavaScript 将网站后台的数据变化实时更新到前端-【知乎总结】

问:

难道只能设置定时器每隔一秒通过 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

相关文章:

  • 随机IP代理
  • html 中几次方,平方米,立方米.
  • OCaml已经做好iOS开发准备
  • spring MVC自定义视图实现jsonp
  • 怎么提高ArcGIS for Desktop10.x的性能
  • python文件相关操作
  • socket.io+angular.js+express.js做个聊天应用(四)
  • BUG系列
  • openstack环境准备
  • MYSQL远程登录权限设置(转)
  • linux 下 NFS服务器配置
  • Spoj 2713 Can you answer these queries IV 水线段树
  • swap函數 进阶探讨与实现
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • Badboy - 从excel中读取数据
  • $translatePartialLoader加载失败及解决方式
  • 【Amaple教程】5. 插件
  • 【面试系列】之二:关于js原型
  • angular学习第一篇-----环境搭建
  • AWS实战 - 利用IAM对S3做访问控制
  • CEF与代理
  • css布局,左右固定中间自适应实现
  • ES6系统学习----从Apollo Client看解构赋值
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Laravel核心解读--Facades
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • React+TypeScript入门
  • Redis 中的布隆过滤器
  • Redis字符串类型内部编码剖析
  • Ruby 2.x 源代码分析:扩展 概述
  • Spring Boot快速入门(一):Hello Spring Boot
  • WebSocket使用
  • 初识 beanstalkd
  • 分布式熔断降级平台aegis
  • 微信小程序:实现悬浮返回和分享按钮
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 移动端 h5开发相关内容总结(三)
  • 因为阿里,他们成了“杭漂”
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​【已解决】npm install​卡主不动的情况
  • ​flutter 代码混淆
  • ​水经微图Web1.5.0版即将上线
  • #etcd#安装时出错
  • (pojstep1.1.2)2654(直叙式模拟)
  • (pojstep1.3.1)1017(构造法模拟)
  • (搬运以学习)flask 上下文的实现
  • (第二周)效能测试
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (生成器)yield与(迭代器)generator
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • . Flume面试题
  • .net core Swagger 过滤部分Api
  • .NET 服务 ServiceController