在页面加载之间保留变量
HTTP 是无状态的,跨页面重新加载保留值需要外部存储。以下是克服此限制的方法:
查询字符串
通过 GET 提交表单时,查询字符串 (?parameter=value) 携带表单字段数据。相应地设置隐藏字段的值:
<form method="GET"> <input type="hidden" name="clicked" value="true" /> <input type="submit" /> </form>
页面加载时,提取查询参数:
function getParameterByName(name) { var regex = new RegExp("[\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } var clicked = getParameterByName('clicked');
Web Storage
HTML5 提供Web 存储,允许基于浏览器的数据存储。 SessionStorage 仅在当前浏览会话期间存储数据:
sessionStorage.setItem('clicked', 'true');
页面加载时,检索存储的值:
var clicked = sessionStorage.getItem('clicked');
Cookies
Cookie 主要用于服务器端数据存储,但也可用于客户端存储。 jQuery 简化了 cookie 管理:
$.cookie('clicked', 'true', {expires: 1}); // expires in 1 day
要在页面加载时读取 cookie:
var clicked = $.cookie('clicked');
请记住在不再需要时取消设置 cookie:
$.cookie('clicked', null);
Window.name
虽然不是推荐,window.name 可以跨页面刷新甚至跨域存储字符串:
window.name = "my value";
页面加载时,访问存储的值:
var value = window.name;
以上是如何在无状态 HTTP 环境中跨页面加载保留变量?的详细内容。更多信息请关注PHP中文网其他相关文章!