【问题标题】:How to implement offline capable Single Page Application with Breeze.js and HTML5 local storage如何使用 Breeze.js 和 HTML5 本地存储实现支持离线的单页应用程序
【发布时间】:2025-12-08 23:25:01
【问题描述】:
我正在使用 Breeze.js 进行数据访问的单页应用程序。它使用 Breeze.js 对本地缓存执行查询,并且数据仅在启动时被请求一次。之后只有数据更新会回传到服务器上。
我正在寻找一种使应用程序连接感知的解决方案。如果移动设备没有互联网连接,更改将使用 Breeze.js 和 HTML5 本地存储在本地保存。当移动设备重新联机时,更改将同步到远程数据存储。
任何指导方针如何实现该要求?
谢谢
【问题讨论】:
标签:
html
synchronization
breeze
single-page-application
offline-caching
【解决方案1】:
看起来 HTML5 提供了 5MB 的本地存储空间,在清理之前一直存在,并且对于使用 XMLHttpRequest 存储 JSON 值很有用。
HTML 5 navigator.onLine 属性提供离线检测。在线为真,不在线为假
var nav = window.navigator;
if(nav.onLine) {
// do HMLHttpRequests etc
}
window.addEventListener('online', function() { });
window.addEventListener('offline', function() { });
更多信息请查看Building Hybrid Mobile Applications with HTML5
【解决方案2】:
@mitaka 为您指出了连接更改检测。
对于使用 BreezeJS 将实体保存到本地存储,BreezeJS 文档中的“Export/Import”主题提供了有价值的线索。 “DocCode”示例中的“exportImportTests.js”文件演示了其中描述的一些技术。