加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

浅谈Web 实时推送技术,有对比,有总结

发布时间:2019-03-27 22:50:10 所属栏目:建站 来源:程序猿的内心独白
导读:副标题#e# 前言 随着 Web 的发展,用户对于 Web 的实时推送要求也越来越高 ,比如,工业运行监控、Web 在线通讯、即时报价系统、在线游戏等,都需要将后台发生的变化主动地、实时地传送到浏览器端,而不需要用户手动地刷新页面。本文对过去和现在流行的 Web

iframe流方式是在页面中插入一个隐藏的iframe,利用其src属性在服务器和客户端之间创建一条长连接,服务器向iframe传输数据(通常是HTML,内有负责插入信息的javascript),来实时更新页面。

  • 优点:消息能够实时到达;浏览器兼容好
  • 缺点:服务器维护一个长连接会增加开销;IE、chrome、Firefox会显示加载没有完成,图标会不停旋转。
  1. // 3.html 
  2.  
  3. <body> 
  4.  
  5. <div id="clock"></div> 
  6.  
  7. <iframe src="/clock" style="display:none"></iframe> 
  8.  
  9. </body> 
  10.  
  11. //iframe流 
  12.  
  13. let express = require('express') 
  14.  
  15. let app = express() 
  16.  
  17. app.use(express.static(__dirname)) 
  18.  
  19. app.get('/clock', function(req, res) { 
  20.  
  21. setInterval(function() { 
  22.  
  23. let date = new Date().toLocaleString() 
  24.  
  25. res.write(` 
  26.  
  27. <script type="text/javascript"> 
  28.  
  29. parent.document.getElementById('clock').innerHTML = "${date}";//改变父窗口dom元素 
  30.  
  31. </script> 
  32.  
  33. `) 
  34.  
  35. }, 1000) 
  36.  
  37. }) 
  38.  
  39. app.listen(8080) 

启动本地服务,打开http://localhost:8080/3.html,得到如下结果:

浅谈Web 实时推送技术,有对比,有总结

上述代码中,客户端只请求一次,然而服务端却是源源不断向客户端发送数据,这样服务器维护一个长连接会增加开销。

以上我们介绍了三种实时推送技术,然而各自的缺点很明显,使用起来并不理想,接下来我们着重介绍另一种技术--websocket,它是比较理想的双向通信技术。

二、WebSocket

1.什么是websocket

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读