我有一个带有一些显示/隐藏部分的表格。当我在我的主页表单中按下一些按钮时,将显示不同的表单。在我编辑这些表格中的信息后,我将返回第一个表格。但是显示/隐藏部分的状态被重置。显示/隐藏操作是使用 jquery 切换完成的。这些部分的状态需要在返回时保持。所以我正在考虑将每个部分的状态存储在会话变量中。您还有其他解决方案吗?将这种行为放在单独的地方会更好还是可能会更好,例如在中间件中?
问问题
474 次
1 回答
1
你真的不需要会话存储。在您描述的情况下,您希望在页面之间为单个客户端保留部分的显示/隐藏状态。会话将是矫枉过正的,因为它涉及一些微不足道的服务器。
我的做法是直接在 jQuery 中使用类似 localStorage(或 cookie,如果你真的想要的话)。它将留在客户端上,服务器不会介意。
编辑
检查 localStorage 的函数:
var canHazStorage = function () {
"use strict";
try {
return 'localStorage' in window && window.localStorage !== null;
} catch(e) {
return false;
}
};
您需要更改切换代码以设置值:
$('#section1').toggle();
if ( canHazStorage ) {
if ( is_shown ) { // you'll need to write that yourself
window.localStorage['section1'] = true;
} else {
window.localStorage['section1'] = false;
}
} else {
// same code using cookies
}
在初始化函数中:
if ( canHazStorage ) {
var toggled = window.localStorage['section1'];
$('#section1').toggle(toggled);
} else {
// same code using cookies
}
于 2010-12-17T09:09:12.113 回答