V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fy
V2EX  ›  Python

页面 post 之后后退,怎么能够后退回之前的一个页面,而不是 post 的页面(不用 ajax)?

  •  
  •   fy ·
    fy0 · 2015-10-29 16:33:16 +08:00 · 3957 次点击
    这是一个创建于 3338 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看起来有点绕,我举个例子:
    你在某论坛里先进入一个板块,然后点进一个帖子进行回复,回复完成了之后按后退,这个时候你在哪里?

    可能很多人觉得应该回到板块页面,但是事实上并不会这样。

    比如我用 Tornado ,这时候处理完 post 请求,一般来讲是 redirect 到 referer ,然而此时按后退,还会停留在这个页面!

    (其实 V2EX 也是如此,你从节点点一个帖子进去回复,然后按后退就明白了)

    那么问题就是,如果不使用 ajax 的话,这事有办法解决吗?
    3 条回复    2015-10-29 17:17:43 +08:00
    domty
        1
    domty  
       2015-10-29 17:09:17 +08:00
    以我的实际经验来说我不建议你进行后退,可以考虑重定向到一个指定的页面。
    原因就在于后退的时候浏览器(我都是用 chrome 做调试,其他浏览器是否这样我也不清楚)不会走请求而是走浏览器的缓存,这就会导致页面一部分数据无法和数据库实际的数据是不同步的。
    domty
        2
    domty  
       2015-10-29 17:12:17 +08:00
    V2EX 应该是给 url 一个新的锚点链接了。
    比如我 post 请求的时候 url 的参数是{url}#reploy1
    post 之后重定向的新页面的 url 就是{url}#reploy2
    你后退回到的链接还是 {url}#reploy1
    fy
        3
    fy  
    OP
       2015-10-29 17:17:43 +08:00
    @domty 好像是有办法进行魔改的。 DZ 似乎就可以回复后按后退跳回去。

    我觉得用户可能有时候会困惑吧,这样给人的感觉并不太好。当然我个人的习惯是帖子开新标签,回复完一般来说就直接关闭了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1086 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:59 · PVG 06:59 · LAX 14:59 · JFK 17:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.