【问题标题】:Use Local Storage as an autosave proxy - good or bad?使用本地存储作为自动保存代理 - 好还是坏?
【发布时间】:2010-12-01 20:02:33
【问题描述】:

我们正在开发一个使用自动保存作为保存模式的网络应用。这个特性带来了一些非常意想不到的 UI 问题。

为了增强用户对该概念的理解,我们希望自动保存即时,而不是在每次保存文档时定期提供视觉反馈。

我们考虑使用本地存储作为临时数据缓存,然后设置一个较慢的间隔,在后台将所有用户数据与 Web 服务器同步。在处理可能的修订冲突场景时,这可能会产生一些不好的副作用。

有没有人在自动保存模式和/或使用本地存储作为数据代理方面有任何经验,并且可以分享一些有价值的信息

【问题讨论】:

    标签: design-patterns user-interface local local-storage autosave


    【解决方案1】:

    我假设您的意思是在每个用户编辑操作(或按键或其他)之后? 这取决于你在这里有什么数据。 如果您只有文本文档,我认为没有理由不直接与服务器交互 但我会添加一些睡眠时间,例如:

    如果用户编辑某些内容,则将开关设置为已编辑 = true, 如果最后一次提交超过 10 秒前,则提交当前状态(此时文档可能已更改,使用当前状态) 将上次提交开关设置为当前时间。

    我认为本地缓冲区非常复杂,可能带来的痛苦多于其有用。

    但是,如果您决定采用常用方法,则以更高的频率填充缓冲区(但使用上述方法),并让它以较低的频率传输到服务器(也使用上述方法) .时间戳/增量 ID 从第一个缓冲区传递到第二个缓冲区到第三个缓冲区等。 当从所有缓冲区或存储服务器恢复内容时,会获取最新版本(使用第一个缓冲区的增量 id)。

    【讨论】:

    • 但是为什么要添加睡眠时间呢?如果我们使用本地存储,则可以即时保存。本地缓冲频率可以是每个用户操作,服务器频率可以是每 10 秒一次。
    • 可以吗?取决于您的数据和应用程序。如果保存过程不超过几毫秒,它可能没问题。一些关于这个主题设计实时交互的文献总共有 50 毫秒的延迟容忍度......在我看来是不正确的。但是从教学书籍中说,如果编辑操作和保存操作保持在 50 毫秒以下,则可以。但是想象一下,Photoshop 会在每次修改时自动保存您的项目文件……它不像本地的所有内容都是即时的,并且您拥有无穷无尽的资源。这就是为什么有比其他计算机更好的计算机,内存和 CPU 和其他东西是一个因素
    • 我可能应该提到数据只是文本,而且大多是小笔记。
    • 是的,那么您可能可以这样做。
    猜你喜欢
    • 2023-03-19
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2012-07-17
    相关资源
    最近更新 更多