1个站点 全是AJAX 局部刷新 ,所以不具备后退功能,现在实现了后退 是把每一次的操作 的URL都保存起来,回退的时候再依次从新AJAX 造成后退的效果。。 封装这些URL的数组 在刷新后全清空了 后退就没有用了 。试了下IFRAME 的PARENT.XXX的不行。现在貌似只能用COOKIE了 。
     但是感觉很不好搞。每一次操作是1个记录URL的数组。我AJAX一次 往URL 数组里添加一条记录。怎么能保证COOKIE里跟这个数组一样随时变换啊。。好乱啊 希望高人赐教 在下不才。。

解决方案 »

  1.   

    我这边也遇到这样的情况,我的处理方式是页面刷新就清掉session里的东西,如果session为空就踢会login
      

  2.   

    flashCookie可以很好地保存JS的数组,字典值,而且存取也非常方便...以前我也为这个问题头痛,后来不了了之了.....  如果要产生后退的话,要不停地重写iframe页,得用一个iframe来控制 主页面 的加载,这样很不爽.个人还是觉得,有些地方还是不要用ajax的好,在效率方面,其实同样的URL页,浏览器都会直接从缓存里取的,用Ajax要考虑的不只是这个后退的问题,例如如果替ajax过来的数据添加事件,如果处理不好的话,内存会不断增长,由于一个页面占用的内存太大,让浏览器在这个页面中检索变量会变得很慢.....
      

  3.   

    cookie在这种场合还是最合适的了,你可以写个从cookie存取数据的函数,将这些功能进行封装,用的时候只取第几个后退的值即可。cookie可以随时读随时写的
      

  4.   

    不知道是不是你要的效果...
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function setCookie(name,value)
    {
        var d = 365, expires = new Date( new Date().getTime() + d * 24 * 60 * 60 * 1000 );
        document.cookie = name + "=" + escape (value) + ";expires=" + expires.toGMTString();
    }
    function getCookie(name)     
    {
        var val = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
    return (val ? unescape(val[2]) : null);
    }
    function delCookie(name)
    {
        var expires = new Date( new Date().getTime() - 1 ), val = getCookie(name);
        val && (document.cookie= name + "=" + val + ";expires=" + expires.toGMTString());
    }
    var urls;
    window.onload = function(){
    //delCookie("url"); return;
    urls = getCookie("url");
    urls = urls ? urls.split("||") : [];
    urls.push(window.location.href);
    setCookie("url", urls.join("||"));

    document.getElementById("val").innerHTML = urls.length;
    if(urls.length == 1){
    document.getElementById("goNext").disabled = true;
    }
    };function getNext(){
    var url = window.location.href.split("?")[0] + "?n=" + urls.length;
    window.location.href = url;
    }function getPrev(){
    if(urls.length > 1){
    urls.pop();
    var url = urls.pop();
    setCookie("url", urls.join("||"));
    window.location.href = url;
    }
    }
    </script>
    </head><body>
    <div id="val"></div>
    <input type="button" value="前进" onclick="getNext()" /> - 
    <input type="button" id="goNext" value="后退" onclick="getPrev()" />
    </body>
    </html>
      

  5.   

    页面刷新就清掉session里的东西?还是使用cookie吧
      

  6.   

    给你害惨了 欺负我新手啊 这个刷新跟HTML本地刷新不一样啊 JSP一刷新从请求,什么都没了 隐藏域不能保存啊
      

  7.   

    shua xia na fen 
      

  8.   

    USERDARA 或者COOKIE  不过动态来讲不太好 以为你的数组时随时变的 而COOKIE设置的值是固定的 这样你必须删除覆盖或者命名不同的 。这很有局限性。我早发现了 QQ空间上就是AJAX 实现的也没有刷新和后退的功能 哎 悲哀 
    Google 牛啊