保证前端数据实时性 --- js异步轮询
来源:互联网 发布:制作动漫人物的软件 编辑:程序博客网 时间:2024/06/06 15:36
不管在何种模式的开发中,经常会遇到“前端数据实时性”的问题。本文将讨论一种“保持前端数据实时性的一种办法”。js异步轮询。
1:首先分析一下这个问题:
数据实时性,你也许会说,如果用户能够每一秒都刷新一下页面,不就实时了?对的。只要每隔多长时间请求一下服务器,就能保证前端数据的实时性。
那为什么“服务器总是这么被动的等着被访问呢”?
这个问题是关键:因为http协议是请求-响应式的。服务器端不会“主动的向客户端发数据”,所以,当服务器有最新数据的时候,无法告知前端,从而前端的数据无法实时。
所以,我们至少有两种方式来解决这个问题:
第一,前端去请求服务器,获取最新数据。
第二,服务器发现有最新数据时,主动发送给客户端。
2:分析一下【1】中的两种方法:
第一种方法,其实就是“前端轮询”,前端每隔多长时间去请求一下最新数据。
第二种方法,其实底层已经不再使用http协议了,改用socket协议了。
分析两者,前者,由于频繁访问服务器,期间创建http请求,DNS解析,服务器处理等过程不断重复,浪费服务器资源。
后者就明显更好。基于socket的长连接,避免了多次请求所产生的其他额外资源浪费,更加高效和安全。
本文将对前者进行一个实现,并给出简单实例。后期会对后者进行说明。
3:假设一个业务逻辑。
“保证前端数据实时性”,OK,那就拿服务器时间来说吧。前端实时获取服务器时间。
4:实例:
<?phpecho date('Y-m-d H:i:s', time());?><html><head><title>Async Event Loop</title></head><body></body><script type="text/javascript" src="./jquery.min.js"></script><script type="text/javascript">setInterval(function(){$.ajax({url : '',type : 'post',success : function(data){$('body').html(data);}});},1000);</script></html>
0 0
- 保证前端数据实时性 --- js异步轮询
- 前端数据实时可视化
- 前端数据实时校验
- 前端Js中利用Ajax异步调用后台处理数据
- webim如何用轮询保证消息绝对实时
- UIWebview使用缓存并且保证实时性
- iOS-UIWebview缓存并保证实时性
- js 异步删除数据
- 【Websoket】实时推送图像数据,前端实时显示
- Rocketmq 安装 多master多slave的方式 异步复制(可以保证实时消费)
- 异步流程控制(js前端)
- linux操作系统下的voip通话实时性保证
- dot.js异步加载数据
- 前端 验证数据的js
- js实现前端数据分页
- 前端异步加载js且判断js是不是加载完成
- js实现 股票实时数据 监测
- JS获取新浪实时股票行情数据
- 多tomcat 同一个浏览器 同一个项目 会导致session覆盖
- C#代码生成器
- Xcode7 App Transport Security has blocked a cleartext HTTP (http://) resource load
- PHP中9大缓存技术总结
- Concurrency and multi-thread learn from Cloud Computer Individual Project 3.2
- 保证前端数据实时性 --- js异步轮询
- 我写过的脚本(定时重启设备)
- int,long,long long,__int64
- My97 datePicker (WdataPicker)
- 一个请求在Struts2框架中的处理步骤
- 九度OJ 1188:约瑟夫环 (约瑟夫环)
- c++学习(一)
- [问题][已解决]java.io.IOException: Last packet not finished
- Android-ListView和ScrollView内嵌套listview的问题