浏览器在前进、后退的时候能打开上一次的页面是靠什么机制实现的,url吗?

Mr_Sky 发布于 2014/08/23 11:34
阅读 908
收藏 1

大家好,请教点问题。

第一个问题,浏览器在点前进、后退的时候能回到上一次的页面是靠什么机制实现的,url吗?后退看起来好像是访问上一次url,从chrome的debug里看到确实有对上一次地址新的请求。以前学习的书上好像没有详细讲过这里。

第二个问题,在a页面的input或者textarea中输入点东西但不提交,然后随便点一个页面上的链接,然后再后退,input或者textarea里的输入的内容还在(实际情况是有的网站会保留,比如豆瓣上对别人影评写回复但不提交,然后点其他链接,然后再后退,回复文字还在;有的会清空,比如百度搜索框,输入点东西,然后点贴吧,然后再后退,输的东西没了。可是奇怪的是豆瓣的试验在chrome里如上描述,但在IE9被清空了。这让我迷惑到底是和浏览器有关系还是和网站代码有关系)。想知道决定保留或者清空是浏览器的特性还是开发中代码来实现?

第一个问题是在发现第二个问题的时候附带产生的。请大神勿喷


ps 自己写了个jsp,测试在chrome ie中前进后退 都能保留input textarea的文字,但是网页的html里并不存在那些输入的文字,这看起来像是浏览器的特性,我糊涂了


加载中
0
红星xx
红星xx
浏览器 刷新保留文字 ,是现代浏览器特性 。如果没记错 ,将input的 autocomplete="off"  设置为 off 就可以避免记忆 ,为了较好的兼容 有的 用 js , $("input").val("") ,设置为空
Mr_Sky
Mr_Sky
您好,看了api中属性autocomplete是“规定是否使用输入字段的自动完成功能”,并且是html5才有的。在jsp中试验,该属性也并不影响前进后退中,input、textarea中输入但未提交的内容。所以应该还有其他原因。感谢您的热情回复。
0
会爬树的蜗牛
会爬树的蜗牛
我也遇到同样问题,
0
Micooz
Micooz
关于第一个问题,浏览器具有缓存机制,使用history.back(),可以实现相同的功能,关于出现新的请求,有这种情况,对于get方法,服务端会发送302 Not Modified 来通知浏览器直接载入缓存。 关于第二个问题,可以考虑链接打开的方式,是在页内直接打开,还是打开新页。
返回顶部
顶部