1

我有一个带有一些显示/隐藏部分的表格。当我在我的主页表单中按下一些按钮时,将显示不同的表单。在我编辑这些表格中的信息后,我将返回第一个表格。但是显示/隐藏部分的状态被重置。显示/隐藏操作是使用 jquery 切换完成的。这些部分的状态需要在返回时保持。所以我正在考虑将每个部分的状态存储在会话变量中。您还有其他解决方案吗?将这种行为放在单独的地方会更好还是可能会更好,例如在中间件中?

4

1 回答 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 回答