将javascript变量的值保存在浏览历史记录中

时间:2013-09-09 16:23:55

标签: php javascript jquery

我正在创建一个使用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请求。谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用localStorage在每个客户端的基础上保留持久值,而无需使用Cookie。这种方法优于cookie的优点是,使用cookie时,值会随着每个请求一起发送。您最终来回传递您可能不需要的数据,并且可能会在服务器端无意中修改或覆盖cookie。

要使用本地存储,您只需使用localStoragegetItem引用setItem对象,分别获取和设置数据。如果您预计会支持较旧的客户,建议您使用垫片,或者您可以使用Cookie作为后备来自行填充垫片。

文档

答案 1 :(得分:0)

这在很大程度上取决于您需要支持哪些浏览器,但在最近的浏览器中,本地存储得到了很好的支持。文档:

The Storage object