ajax后退解决办法

一个表格,点击查询按钮后发送ajax获取到若干数据,点击某一项数据,页面跳转了。点击后退按钮,页面回到表格初始化状态。能否实现点击后退后保留ajax获取数据后的状态?????我看了有pjax,但是项目要兼容ie8...

阅读 5.5k
9 个回答

还有个最直接的方法,点击某一项数据的时候跳转的是新页面= =

看博客园主页:

clipboard.png

流程:
1.点击页码,异步请求数据,同时改变地址栏的值
2.页面刷新,取到地址栏的值,加载对应页码的数据。

需要 IE 10+,五年前你是支持不了 IE 的。

所以,放弃吧。你必须承认,某些客户端,尤其是多年之前的,其功能就是差一些。

可以尝试用古代的技术做一些替代方案,比如表格放一个 iframe 里,内容加载到另一个 iframe,然后把表格那个 iframe 隐藏。或者你把表格给隐藏起来。关键是别让用户点后退。

更新:哦哦,我都忘记了用 hashchange 取代 popstate 这种用法了。这是 pushState 支持不好的年代 Twitter 他们用过的方案,刚好支持 IE 8。GitHub 没用这个,对旧浏览器直接整页刷新了。

ie8 好像支持localstorage吧?
如果支持的话,ajax之前先判断localstorage有没存数据,如果有就直接取出渲染页面。
第一次ajax请求时是把数据存到localstorage中。
后退应该也是可以触发js渲染页面的
(以上没有具体实践过,不是专业写前端的.....)

感觉ajax好像没法后退吧。

把值和时间戳存cookie。。
一进页面就拿cookie值,时间戳过期就不拿

1.点击某一条既然你想保留原页面的表格数据,为何不做新开页面呢?
2.如果你不想新开页面,那么你肯定就是在点数据的那个页面中做了操作,那么我觉得远ajax请求就不应保留,因为不是最新数据,返回回去的时候,理应刷新
3.如果点击数据进入页面只是按钮的'审核''删除'类似操作,哪怕有简单的form表单提交,都可以使用当前页面弹层来解决,所以针对不同情况,你自行决定吧.

非ie:
DocumentFragment
document.createDocumentFragment

ie8就直接单页缓存, window.clipBoard都是VBScript和JScript衍生过来的bom对象,ActiveX

无聊啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题