单页应用的挑战之一是确保客户端软件和服务器应用相匹配。

举例:如果一个用Bobbie在他的浏览器中加载我们的单页应用,五分钟之后我们更新了服务器应用。现在Bobbiede遇到了问题,因为我们对服务器做了更新后,用的是一种新的数据格式,而Bobbie的单页应用仍然需要旧的数据类型。

解决这种情况的一种方法是:在意识到数据格式过时的时候,强制Bobbie重新加载整个单页应用(比如说之后向她发送服务器更新的消息通知)

但我们能够做得更加漂亮:可以选择性地只更新单页应用中发生变化的javaScript文件。

不用强制重新加载整个应用

那么如何做到这种神奇的更新呢?有三个问题需要考虑

  (1)监听javaScript文件,能够检查到对他们的修改  

  (2)通知客户端文件已经被更新

  (3)当客户端收到变化通知时,更新客户端的javaScript文件

第一个问题,能够检测到文件的修改,可以使用元素node文件系统模块fs来完成这个功能

第二个想浏览器发送Socket.IO通知

第三个更新客户端文件的问题。可以在接收到通知的时候,通过插入一个新的Script标签来完成

最新文章

  1. mac 系统通用快捷键(mac 下的应用多数会往这些标准看齐)(转:http://yang3wei.github.io/blog/2013/02/08/chen-ni-yu-mac-chen-ni-yu-xcode/)
  2. Storm Ack框架笔记
  3. 解决中64位Win7系统上PLSQL无法连接ORACLE的方法(PLSQL无法识别ORACLE_HOME的配置)
  4. dede首页调用栏目内容_{dede:field.content/}首页调用
  5. 执行bat文件
  6. ie浏览器的渲染原理
  7. SuperSlidev2.1 轮播图片和无缝滚动
  8. Hbase集群无法关闭
  9. as3声谱效果,有在线演示地址,能够播放本地音乐
  10. linux新建用户登录不了
  11. [Swift]LeetCode215. 数组中的第K个最大元素 | Kth Largest Element in an Array
  12. 尝试Java,从入门到Kotlin(上)
  13. 泊爷带你学go -- 加锁的问题
  14. python3下调用系统massagebox对话框
  15. 配置Nginx虚拟主机
  16. 腾讯云主机的公网无法访问,putty和FileZilla连接不上
  17. cpp 区块链模拟示例(五) 序列化
  18. Java的map键值对的用法,map的遍历,Entry对象的使用
  19. 【转】VISUAL STUDIO 2008代码指标为您节省资金
  20. Android 布局类控件

热门文章

  1. CSS文本垂直居中显示
  2. springCloud数据
  3. vue 组件的简单使用01
  4. PHP ftp_alloc() 函数
  5. 1245. Tree Diameter
  6. 模拟+细节题——cf1236D
  7. 3.5 compose redux sages
  8. 文本表征:SoW、BoW、TF-IDF、Hash Trick、doc2vec、DBoW、DM
  9. LintCode 汉诺塔
  10. 【Java多线程系列三】实现线程同步的方法