1

我需要征求一些关于离线 Web 应用程序和数据库同步的建议。

离线场景

我们有一个网站 (HTML5),需要在离线模式下长时间运行复杂的数据,产品所有者不希望将数据放入本地存储。

在我看来,我们有两个选择;

  1. 使用 javascript 来检测我们是否离线,如果是,则将 url 指向本地 Web 服务器,该服务器复制数据中心的堆栈并写入离线数据库

◦最大的绊脚石是如何在第一次加载时(如果您处于离线状态)获取本地 Web 服务器的位置(URL)?即用户去www.xyz.com,但你离线所以

问题 1:第一次调用时如何通过 javascript 将他重定向到 localhost.xyz.com

  1. 将客户端的所有调用(无论是否离线)都指向 wcf 服务,该服务检查 NIC 的离线状态并将每个 Web 和服务调用重定向到正确的位置 ◦ 似乎是一项艰巨的工作,

问题 2:你们知道有什么产品/开源项目可以做到这一点吗?

同步场景

•他们想使用MS同步框架

◦但是他们有许多客户端同步到不同的数据库,因此您需要每个客户端 1 个同步服务或某种方式来识别客户端同步是谁并将它们指向正确的位置

◦需要在同步期间尽量减少锁定,因为其他客户端在同步期间使用相同的表

问题 3:同步框架是否可以扩展到甚至做到这一点 问题 4:MS 平台上的数据库同步还有哪些其他选项?

谢谢

4

4 回答 4

1

如果用户将 URL 放入他们的浏览器,他们就会去那个 URL。那时没有javascript。加载页面后,您将只有 Javascript。您将不得不寻找更好的解决方案。

这里有一个想法:用户总是去本地网站,如果远程网站已经启动,那么你重定向他们。

就 MS 同步而言,我不知道它是什么,所以我无法帮助你。

于 2012-09-18T19:42:06.250 回答
0

同步框架在同步时不会锁定表。

根据您要在客户端上使用的客户端数据库,您可以使用与 MS 数据库(SQL CE、SQL Express、LocalDB、SQL Server、SQL Azure)一起使用的 Sync Framework 本身,也可以使用Sync Framework Toolkit

无论您选择哪个平台,我都建议您简单地写入本地商店并同步它,而不是动态选择何时使用哪个商店。

例如,如果您下线并写信给本地商店。然后您的网络监视器检测到您重新在线并将您重定向到在线服务,您将如何处理本地存储的数据?或者您在网上进行了交易,然后突然下线了,本地商店的最新/更新时间是多少,您才能真正开始对抗它?

于 2012-09-19T02:55:08.237 回答
0

关于 MS 平台上的数据库同步还有哪些其他选项:还有 SQL Azure Data Sync,一个 Windows azure Web 服务。它实际上是建立在您所指的 Microsoft Sync Framework 之上的。

Leonard Lobel & Andrew Brust (MS Press) 所著的“Programming Microsoft SQL Server 2012”一书中有一个示例——第 13 章介绍了构建包含 SQL Azure Data Sync、Windows Azure 和 Windows Phone 7 开发平台的偶尔连接的系统。在示例解决方案中,在后端,本地 SQL Server 数据库使用 SQL Azure 数据同步与云中面向公众的 SQL Azure 数据库保持同步。云数据库使用 WCF 数据服务(也通过部署到 Windows Azure 托管在云中)公开,并由运行在 Windows Phone 7 设备上的移动客户端应用程序通过 OData 使用。本章中详细介绍的示例解决方案演示了这些技术如何在本地 SQL Server、云中的 SQL Azure 数据库中保持数据同步,

于 2012-09-18T23:46:37.687 回答
0

您可以使用 Service-Workers 在用户离线时使网站正常工作。请参阅:使用 Service Worker 使 PWA 脱机工作。这允许您的网站在用户离线时为他们工作(他们需要至少每 24 小时上网一次)。

Service-Workers 还允许您检测用户何时离线或在线,例如,您可以使用 IndexedDB 存储离线更改,然后在用户再次在线时同步它们。

我不知道微软同步。

于 2019-09-09T08:01:26.113 回答