将 javascript 变量的值保存在浏览历史记录中
Keeping javascript variable's values in a browsing history
我正在制作一个用javascript生成内容的网站。我有一个关于简单代码的问题。有一个 php 文件 rand.php:
<?php echo rand(1,5); ?>
和小的 html/JavaScript 代码
<a href="rand.php">rand.php</a>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
(function($) {
var obj = { 'title':'MyVal', 'value':0 };
document.write(obj.title+': '+obj.value);
//i don't want to get ajax-request if i go back of the history to here
//only if i click link to here a first time, and here
//i want to see a random number in [1,..,5] from a last visiting
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'rand.php',
async: false,
data: {},
success: function(nr) {
obj.value = nr;
}
});
});
})(jQuery);
</script>
问题是,如果我点击一个 rand.php -link 然后我返回,但如何从上次访问中保留 obj-JSON 的值,而不是获得新的 ajax 请求。谢谢!
您可以使用 localStorage 在每个客户端的基础上保留持久值,而无需使用 Cookie。与 cookie 相比,这种方法的优点是,使用 cookie,值会随每个请求一起发送。您最终会来回穿梭您甚至可能不需要的数据,并且可能会无意中在服务器端修改或覆盖cookie。
要使用本地存储,您只需使用 getItem
和 setItem
引用 localStorage
对象即可分别获取和设置数据。如果您预计支持较老的客户,建议获取填充程序,或者您可以使用 cookie 作为后备程序滚动自己的填充程序。
文档
- MDN 上的本地存储 - https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage?redirectlocale=en-US&redirectslug=Web%2FGuide%2FDOM%2FStorage#localStorage
- MSDN 上的本地存储 - http://msdn.microsoft.com/en-us/library/ie/cc848902%28v=vs.85%29.aspx
这在很大程度上取决于您需要支持的浏览器,但是在最近的浏览器中,本地存储得到了很好的支持。文档在这里:
存储对象
相关文章:
- 如何在从浏览缓存加载页面时执行javascript
- 循环浏览多个身体背景图像
- 显示浏览量最高的三篇文章
- 单击按钮时循环浏览匹配的表
- window.location替换并传递URL历史记录条目中的变量
- Javascript历史记录转换为php行
- 浏览器何时记录历史记录
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- 流路由器流星的历史
- JS函数在浏览器历史记录中返回特定域的上次浏览页面
- 如何防止浏览器在浏览浏览器历史记录时卡在Angular路线上
- 由于浏览历史设置,angularjs http.get调用未在ie10中启动
- 如何使用Jquery mobile解析/浏览历史记录
- 如何使用JavaScript清除浏览历史记录
- 将 javascript 变量的值保存在浏览历史记录中
- 三星智能电视应用程序浏览历史
- 非SPA应用程序中的Backbone.js在浏览历史记录时出现问题
- 如何在Chrome扩展中使用历史API获得浏览历史记录
- Chrome扩展是否有可能获得用户的完整浏览历史记录?
- 哪个过渡类型获得所有的chrome浏览历史记录