论坛首页 Web前端技术论坛

问一个 window.history.back() 造成的问题

浏览 9050 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-13  
偶有两个page: a.jsp/b.jsp ,a.jsp里边有个 button ,点击会触发一个ajax操作,更新 a.jsp 内部的一个列表。在执行这个操作之后,通过一个 <a></a> 定位到 b.jsp ,这个页面有一个 button ,它的事件是 window.history.back()。当点击了它后,页面退回到 a.jsp ,但是 a.jsp 里边的列表回到了未更新的状态。
这个问题应该是浏览器对于以异步请求的方式用 javascript 对 dom 的更改没有做 cache ,而 window.history.back() 又是取的浏览器的 cache 。

不知道这个问题有没有什么简单的解决办法呢?多谢。
   发表时间:2007-08-21  
我也碰到这个问题,应该怎么解决呢,搜也搜不到解决方法
0 请登录后投票
   发表时间:2007-08-21  
没有什么简单办法(除了刷新——假如你已经把变化保存到服务器端)

下面是不太简单的方法:

ff2和opera应该在back的时候会保留dom修改。ff2有对应的事件可以处理一些细微的问题。

其他思路包括对状态更改的记录,返回的时候取出来重新应用更改。状态可以记录在url的fragment里(#后面的部分),记录在某种客户端存储中(如html5规范所支持的,旧的如cookie,ie的userdata等等)。
1 请登录后投票
   发表时间:2007-08-21  
想办法绕过去,在a.jsp中不<a>到b.jsp中去。

而是在a中打开一个div的内部窗口,可以封装好div+iframe实现。
然后一个方法调用下内部窗口打开b.jsp。

还可以注册些回调函数,用来在关闭b.jsp时该做些什么。

呵呵。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics