我有一些crud页面,我必须存储一些状态信息,如当前页面,每页记录,当前顺序,过滤条件,有时还有更多信息......
我想使用类似于休息风格的友好网址,例如http://microformats.org/wiki/rest/urls(用于浏览的GET,要添加的POST,要编辑的PUT,要删除的删除)
Cookie的问题在于,如果我打开多个标签,所有标签都会共享相同的Cookie,它与会话相同,因为会话ID存储在Cookie中
如果我尝试将这些参数保留在URL中(类似于GET / clients?page = 1& len = 10& sort = name& filter = smith),一旦我发出POST,我就会丢失这些值
另一个解决方案是将状态存储在隐藏的输入上,并始终发布带有这些隐藏输入的帖子,但在这种情况下我不能使用GET进行查询......
那么,你如何处理网络演示状态???
-
加入:
更具体
我有一个crud页面,用户可以过滤,更改页面,页面长度和 排序顺序..
发布更新或插入后,如何检索以前的页面, 页面长度,排序顺序,条件过滤器(表示逻辑 考虑到如果用户打开另一个选项卡,则考虑到... 两个标签都可以使用相同的Cookie ...
我能想到的唯一解决方案是使用隐藏字段......
答案 0 :(得分:1)
我认为你必须完成你的两个建议。
每当您生成页面服务器端时,请确保页面上的任何表单都将您的参数作为隐藏值,并且任何链接都在URL中包含参数...
答案 1 :(得分:1)
如果您不想要cookie和会话,您唯一的选择是将它们作为查询字符串参数(在GET上)和隐藏字段(在表单POST上)传递。
答案 2 :(得分:1)
为不同的页面存储不同的键值对有什么问题?例如,对于页面/product/4
,您可以存储密钥product-4-order
,product-4-filter
等。
或者我错过了你的意图?
修改强>
另一种方法是不刷新当前页面 并使用AJAX进行所有操作。但是,会话之间不会保留设置。