使用Socket.IO做单页SPA应用更新
2024-08-31 19:10:55
单页应用的挑战之一是确保客户端软件和服务器应用相匹配。
举例:如果一个用Bobbie在他的浏览器中加载我们的单页应用,五分钟之后我们更新了服务器应用。现在Bobbiede遇到了问题,因为我们对服务器做了更新后,用的是一种新的数据格式,而Bobbie的单页应用仍然需要旧的数据类型。
解决这种情况的一种方法是:在意识到数据格式过时的时候,强制Bobbie重新加载整个单页应用(比如说之后向她发送服务器更新的消息通知)
但我们能够做得更加漂亮:可以选择性地只更新单页应用中发生变化的javaScript文件。
不用强制重新加载整个应用
那么如何做到这种神奇的更新呢?有三个问题需要考虑
(1)监听javaScript文件,能够检查到对他们的修改
(2)通知客户端文件已经被更新
(3)当客户端收到变化通知时,更新客户端的javaScript文件
第一个问题,能够检测到文件的修改,可以使用元素node文件系统模块fs来完成这个功能
第二个想浏览器发送Socket.IO通知
第三个更新客户端文件的问题。可以在接收到通知的时候,通过插入一个新的Script标签来完成
最新文章
- mac 系统通用快捷键(mac 下的应用多数会往这些标准看齐)(转:http://yang3wei.github.io/blog/2013/02/08/chen-ni-yu-mac-chen-ni-yu-xcode/)
- Storm Ack框架笔记
- 解决中64位Win7系统上PLSQL无法连接ORACLE的方法(PLSQL无法识别ORACLE_HOME的配置)
- dede首页调用栏目内容_{dede:field.content/}首页调用
- 执行bat文件
- ie浏览器的渲染原理
- SuperSlidev2.1 轮播图片和无缝滚动
- Hbase集群无法关闭
- as3声谱效果,有在线演示地址,能够播放本地音乐
- linux新建用户登录不了
- [Swift]LeetCode215. 数组中的第K个最大元素 | Kth Largest Element in an Array
- 尝试Java,从入门到Kotlin(上)
- 泊爷带你学go -- 加锁的问题
- python3下调用系统massagebox对话框
- 配置Nginx虚拟主机
- 腾讯云主机的公网无法访问,putty和FileZilla连接不上
- cpp 区块链模拟示例(五) 序列化
- Java的map键值对的用法,map的遍历,Entry对象的使用
- 【转】VISUAL STUDIO 2008代码指标为您节省资金
- Android 布局类控件