【问题标题】:How can a web application synch a folder of text files on the client's PC?Web 应用程序如何同步客户端 PC 上的文本文件文件夹?
【发布时间】:2010-11-09 13:13:30
【问题描述】:

我希望能够通过我的 Web 应用程序实时同步用户 PC 上的多个文本文件。基本上我想要本地 PC 上的一些数据文件来反映我的 Web 应用程序中用户数据的状态,所以如果 Web 应用程序或用户的 Internet 连接丢失,他可以使用这些数据文件来获取一些关键信息(可能使用 html /javascript 代码与将在这些数据文件上以脱机模式运行的文件一起存储。)

我知道 google gears 有很多有趣的工具用于处理离线状态,但我更喜欢 html/javascript 中更简单的应用程序,它不会像 google gears 那样依赖。我宁愿使用 google gears 来创建这些文件,然后慢慢地让它们全天与 Web 应用程序的数据版本保持同步。

答案更新: PersistJS 是一个很好的建议,我会考虑,但我希望人们能将我引向真正优秀的 Google Gears 教程资源。

【问题讨论】:

    标签: ajax asynchronous google-gears


    【解决方案1】:

    您可以使用PersistJS在浏览器上保存数据,它使用了它可以找到的最好的客户端持久存储机制,支持:

    • 闪光
    • 谷歌齿轮
    • HTML 5 存储规范
    • 特定于浏览器的扩展
    • cookies

    当您的应用重新连接时,您可以重新同步。创建和读取文本文件是浏览器通常会阻止您的网站执行的操作。

    【讨论】:

      【解决方案2】:

      陈述显而易见的风险;如果您想在本地存储用户状态,cookie 不是标准方式吗? 可能需要不止一个 cookie,但这听起来是最简单的方法。

      【讨论】:

        【解决方案3】:

        您将需要制作一个 ActiveX 控件和一个 FireFox 插件来获得这些权限。除此之外,我同意 orip 尝试使用PersistJS

        【讨论】:

          【解决方案4】:

          您可以要求用户下载预定义为仅与您的 subversion 服务器交互的 subversion 客户端。然后编写您的 Web 应用程序以仅与您这边的颠覆服务交互。

          授予对用户文件系统的访问权限会带来很多安全危害,因此您需要锁定所有可能的利用点。您需要确保用户无法访问颠覆服务器,除非通过您要求他们安装的客户端。您需要确保应用服务器和 subversion 服务器之间的连接非常安全,这样传输路径就不会受到破坏,并且可能加载到应用服务器上的恶意逻辑无法访问 subversion 服务器。我会说加密这两个服务器之间的传输路径,并将颠覆服务器放在隔离您的网络 DMZ 的防火墙后面。我还建议在应用服务器和颠覆服务器之间使用质询/响应机制,以防止恶意代码看起来是在应用服务器上做出的合法决策。此外,请确保数据仅以单向方式从应用程序服务器流向颠覆服务器,因为如果在您的应用程序服务器上植入了恶意逻辑,那么来自颠覆服务器的任何数据都会受到损害,甚至无需访问该服务器。

          【讨论】:

            【解决方案5】:

            您可以通过 javascript 使用文件系统对象 FSO,但它依赖于 Microsoft,因为它是一个 ActiveX 控件,它还需要浏览器中的权限,或者可能是 HTA(HTML 应用程序)。

            http://www.webreference.com/js/column71/

            这是一个真正的安全问题,因此大多数途径都因赫伦特利而关闭。

            【讨论】:

              【解决方案6】:

              从本质上讲,Web 模型的设计目的是不对从服务器到客户端的上游进行授权。现在事情正在慢慢发生变化,也许你可以用 Websocket 做到这一点?

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2013-05-20
                • 2019-07-05
                • 1970-01-01
                • 2015-09-04
                • 1970-01-01
                • 2011-03-22
                • 2016-02-16
                相关资源
                最近更新 更多