我有类别浏览页面最初显示48个产品,并且在客户点击下一个按钮后,它会触发ajax调用以加载下一个48个产品,因此页面有96个产品,并且网址保持不变。然后,客户从页面中单击一个产品,然后转到产品页面,然后在浏览中单击返回浏览页面,页面将重新加载,并显示24个产品。
所以我的问题是如何保持最后的ajax状态,所以当客户点击回来时,他们仍会看到48个结果。
我看到LLBean可以做到,但想知道如何实现它? http://www.llbean.com/llb/shop/509723?nav=ln-26&page=active-clothing
谢谢!
答案 0 :(得分:0)
是的,您可以使用客户端的cookie存储或服务器端的会话数据来执行此操作。我想我会推荐cookie存储,因为这是非常基本的不敏感数据。
您可以使用以下代码来编写,读取和删除cookie数据:
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
} else var expires = "";
document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = escape(name) + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length, c.length));
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
例如,您可以设置名为numResults
的Cookie来存储客户端浏览的结果数量:
var data = readCookie("numResults");
if (data != null && data != "") {
//in this case, you have your data, load this many results
} else {
createCookie("numResults", 48, 30); //create the cookie, if it doesn't already exist
}
当您进行ajax调用以增加结果编号时,只需添加:
createCookie("numResults", newNumber, 30);