Rails上的本地存储

时间:2015-12-06 05:22:33

标签: ruby-on-rails angularjs local-storage

我已经构建了一个Rails应用程序,基本上是一个用于备忘录/备注的CRUD应用程序。

备注标题必须是唯一的。如果用户输入已经采用的名称,则会显示一条警告消息,提示他们选择另一个名称。

我的问题是如何使此反馈的延迟尽可能接近零。当创建一个小笔记本时,像这样的UX速度颠簸将很快让用户烦恼。

当然主要的瓶颈是网络。受Meteor(和mini-mongo)的启发,我认为某种本地存储可能是一种解决方案吗? I.E.当应用程序首次加载时,将ALL JSON发送到具有所有注释标题的客户端。应用程序(前端是Angular JS)可以检查LocalStorage(或App Cache,Web SQL?)而不是发生网络往返。反馈将是即时的。

我过去曾使用LocalStorage来增强应用程序,但在这种情况下它真的非常依赖它。我不确定我是否有信心建立用户可能没有的东西。另外,作为用户备注/备忘录的数量,我怀疑使用所有备注标题发送JSON对象是多么可行。这可能会变得非常大。另一方面,MeteorJS似乎没有probs这样做。

有没有人做过类似的事情或有任何指针?谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道Meteor是如何在这里工作的,但你是对的,将所有音符标题存储在localStorage中并不是一个好主意。实际上,你在这里不需要localStorage,你可以把它放在一个JS数组中,因为你只需要这个数据一次(当检查新的音符标题时)。

我认为,可能有两种可能的解决方案:

  1. 您可以更改业务要求并允许非唯一标题。标题是否真的有必要独一无二?

  2. 您可以在用户提交表单时验证便笺标题。在这种情况下,您可以为用户提供建议,因此他们不会花时间猜测空置标题。

  3. 或者,如果标题必须仅在用户中是唯一的(两个用户的笔记可以具有相同的标题),则可以在JS数组中加载所有笔记标题,并在用户输入标题时检查唯一性。

    或者,您可以在用户输入标题后立即发送检查标题唯一性的AJAX请求。在这种情况下,你可以赢得几秒钟。

    或者您可以在用户输入3个符号后立即发送AJAX请求。该请求将返回以这3个符号开头的所有标题,因此您无需加载所有标题。