Javascript 我的场景中会话变量的替代方案
我有一个小视图,用户点击它就会弹出并弹出。它必须在页面之间保持其状态。如果用户打开miniview并转到另一个页面并返回,它应该是打开的。。代码是: HTML:Javascript 我的场景中会话变量的替代方案,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有一个小视图,用户点击它就会弹出并弹出。它必须在页面之间保持其状态。如果用户打开miniview并转到另一个页面并返回,它应该是打开的。。代码是: HTML: 学生信息控制器基本上具有设置字符串值的getminiviewstatus。现在,它很好用,但我不喜欢这种方式。无论如何,我可以在dom加载之间存储状态吗???正如ravi在评论中回答的那样,当使用js和在客户端执行操作时,cookie是一个很好的解决方案。更详细地说,我将使用插件来获取和设置cookie。然后,我将您的代码更改为以下内容
学生信息控制器基本上具有设置字符串值的getminiviewstatus。现在,它很好用,但我不喜欢这种方式。无论如何,我可以在dom加载之间存储状态吗???正如ravi在评论中回答的那样,当使用js和在客户端执行操作时,cookie是一个很好的解决方案。更详细地说,我将使用插件来获取和设置cookie。然后,我将您的代码更改为以下内容,并消除对ajax操作的服务器端支持
$(".pullout_ico").click(function() {
$.cookie("miniviewstatus", true);
});
$(".pullout_button").click(function() {
$.cookie("miniviewstatus", false);
});
var status = $.cookie("miniviewstatus");
if (status) {
openMiniView();
} else {
closeMiniView();
}
function openMiniView() {
$(".pullout_block").show(250);
$(".pullout_ico").hide(100);
$(".left_content").removeClass("bigger_left_content");
}
function closeMiniView() {
$(".pullout_ico").show(100);
$(".pullout_block").hide(250);
$(".left_content").addClass("bigger_left_content");
}
看起来不错。我唯一能想到的就是使用简单的浏览器cookie并摆脱服务器依赖性。
$(".pullout_ico").click(function() {
var url = "/StudentInformation/getminiviewstatus";
$.post(url, { status: "true" }, function (data) {
openMiniView();
});
});
$(".pullout_button").click(function() {
var url = "/StudentInformation/getminiviewstatus";
$.post(url, { status: "false" }, function (data) {
closeMiniView();
});
});
var status = $("#miniviewstatus").val();
if (status == "true") {
openMiniView();
}
if (status == "false") {
closeMiniView();
}
function openMiniView() {
$(".pullout_block").show(250);
$(".pullout_ico").hide(100);
$(".left_content").removeClass("bigger_left_content");
}
function closeMiniView() {
$(".pullout_ico").show(100);
$(".pullout_block").hide(250);
$(".left_content").addClass("bigger_left_content");
}
};
$(".pullout_ico").click(function() {
$.cookie("miniviewstatus", true);
});
$(".pullout_button").click(function() {
$.cookie("miniviewstatus", false);
});
var status = $.cookie("miniviewstatus");
if (status) {
openMiniView();
} else {
closeMiniView();
}
function openMiniView() {
$(".pullout_block").show(250);
$(".pullout_ico").hide(100);
$(".left_content").removeClass("bigger_left_content");
}
function closeMiniView() {
$(".pullout_ico").show(100);
$(".pullout_block").hide(250);
$(".left_content").addClass("bigger_left_content");
}