1

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

4

2 回答 2

1

您可以使用localStorage来保存每个客户端的持久值,而无需使用 cookie。这种方法相对于 cookie 的优势在于,使用 cookie 时,值会随每个请求一起发送。您最终会来回传输您甚至可能不需要的数据,并且可能会无意中在服务器端修改或覆盖 cookie。

要使用本地存储,您只需引用localStorage对象,使用getItemsetItem,分别获取和设置数据。如果您希望支持老客户,建议您购买 shim,或者您可以使用 cookie 作为后备来滚动自己的 shim。

文档

于 2013-09-09T16:32:13.673 回答
0

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

存储对象

于 2013-09-09T16:30:36.823 回答