2013-04-29 44 views
0

我们的应用程序几乎每页都有几个过滤器。我目前的目标是实现一种机制来存储过滤器,并在用户重新打开页面时预先选择它们,因此至少在一次会话期间,用户在打开页面时不会一次又一次地选择它们,或者从一个页面页面到页面。如何在会话中更好地存储来自客户端的过滤器

的应用程序编写与ASP.NEt MVC和我们使用了大量的JavaScript来处理过滤。目前仅在客户端进行大量过滤(例如,检索网格的完整数据,并且仅在客户端上进行所有进一步过滤)。

我想这些步骤:

  • 基类控制器:方法获取数据从common.js的方法来发送和会话中保存它。
  • 共同JS:到common.js添加了一个方法,它接受由用户做出的选择,以及与页面的控制和名称的名称一起将其发送到服务器Method1中,以便存储在新的选择会话对象。用于控制器
  • 基类:方法2接受控制器的名称,页面的名称,并检索会话对象。
  • 单个页面的JS:在onload事件中指定所有现有过滤器并从Method2获取数据。

但是,我不知道,这个解决方案是普遍的和最佳的。

而且我不想推倒重来。此任务是否有任何现有的解决方案或模式?或者有什么想法可以做得更好?

回答

0

我想到的一种方法是使用Cookie而不是会话,因为它只是部分,您可以从JavaScript本身读取Cookie。它将保存服务器资源,因为您不会在会话中保存任何内容。如果您的选择标准不是很敏感,不应该有任何安全问题

+0

感谢您的想法!这听起来很合理,但我认为我们会坚持会话,因为我们希望将选择数据存储在数据库中,以便用户在另一台机器上打开网站时可以使用他的过滤器。 – Anelook 2013-04-29 09:05:14