2

我的应用程序有一个“主”页面,其中大部分操作都在其中发生:有用于过滤的标签和(分页)表中的结果列表,以及在“购物车”中选择部分或全部结果的可能性。

这个页面必须跟踪很多事情:选择了哪些标签,选择了哪些项目,结果表是如何排序的以及它在哪个页面上。一切都必须坚持,所以如果我选择一个新标签,页面必须部分重新加载但记住一切(排序,选择了什么)。

现在我正在使用参数处理所有内容,并且对于页面上执行的每个操作,所有链接(选择标签/项目、更改页面、排序表)都会更新以包含以前的参数 + 相关的新增内容。这很有效,但感觉有点低效,因为我必须重新加载比我想要的更多的页面。这种情况一般如何处理?我在谷歌上根本找不到那么多信息,但感觉并不是一个特别罕见的情况。

tl;dr:如何最好地确保所有链接(指向同一页面)始终包含以前选择的所有内容 + 新操作。有很多链接(每个标签一个选择/取消选择,每个结果项目一个选择/取消选择,每个排序选项一个,每页一个)

4

2 回答 2

4

有五种方法可以做到这一点:

方法一:通过参数

你提到了这个。我从没想过这太麻烦了。无论如何,它仍然是非常简单的案例的解决方案。

方法2:通过cookie

将设置保存到 cookie 并读取控制器中的 cookie 以安排布局设置。

方法3:通过LocalStorage

类似于 cookie 但允许更多空间。

方法四:按会话

如果您使用 ActiveRecord 来保存会话,这可能是纯页面加载的最佳解决方案。将用户首选项保存到会话中并将其加载到下一个布局中。

方法5:使用Ajax

这是 IMO 的最佳解决方案。无需加载整个页面,而是使用 Ajax 刷新/检索您需要的更改。与上述方法一起使用,用户甚至可以继续他最后的偏好。这是最强大的,应该适用于你的情况,它看起来像一个网络应用程序而不是一个网站。

于 2013-05-20T09:09:26.770 回答
0

您是否尝试过为所有这些属性创建模型?并且在页面加载时始终加载“最新”,如果您不需要它们,您始终可以为该会话设置一个标志。

于 2013-05-20T10:21:37.723 回答