使用Socket.IO做单页SPA应用更新

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

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

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

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

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

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

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

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

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

 

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

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

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

posted @ 2018-04-11 15:13  惠鹏曦  阅读(176)  评论(0编辑  收藏  举报