采用 HTML5 方式并使用sessionStorage对您来说有意义吗?
这样您就可以独立于不同设备处理浏览器会话的方式,因为 HTML5 会话存储是按窗口进行的,因此它仅限于浏览器窗口的生命周期。
基本上所有的移动设备都支持 sessionStorage(见这里),你可以有一个框架/插件,比如 jQuery-Session-Plugin(点击这个链接)为你处理会话数据(并为不支持的旧浏览器提供回退到会话 cookie支持会话存储)。
编辑:为了显示 sessionStorage 与 localStorage 的行为,我创建了一个小提琴(用于演示目的)使用 sessionStorage 存储 div 的宽度和 localStorage 存储同一 div 的高度:
var randomWidth,
randomHeight;
if (!(randomWidth= $.session.get("randomWidth"))) { // assignment
randomWidth = Math.random() * 300;
$.session.set("randomWidth", randomWidth, true);
console.log("just assigned and stored in sessionStorage: randomWidth: " + randomWidth);
} else {
console.log("from sessionStorage: randomWidth: " + randomWidth);
}
if (!(randomHeight= $.domain.get("randomHeight"))) { // assignment
randomHeight = Math.random() * 300;
$.domain.set("randomHeight", randomHeight, true);
console.log("just assigned and stored in localStorage: randomHeight: " + randomHeight);
} else {
console.log("from localStorage: randomHeight: " + randomHeight);
}
$(".test").css({width: randomWidth, height: randomHeight});
看看控制台。您会看到,当您启动客户端浏览器的新会话时,宽度会发生变化,而高度将保持不变(因为本地存储是每个域的)。
这是jsfiddle的链接