背景
列表页面的翻页和查询都是ajax写的,每个列表有10列,每列上都有操作,列表的翻页和查询都是ajax做的,所有的查询条件都保存在js中。
操作的链接是a链接
问题
当用户查询了好多数据之后,并且翻页了,现在点击编辑或者其他的,再点击浏览器的后退按钮,就不能回到原来的页面
补充
主要针对ie8的用户
伊谢尔伦2017-04-10 12:45:49
这是AJAX应用中会遇到的一个大问题,解决方法大家已经总结好了。
具体使用请Google之:https://www.google.com/search?hl=zh-C...
高洛峰2017-04-10 12:45:49
ajax是异步的,不会在你当前窗口的历史中,所以浏览器后退肯定不行,一般来说必须跳转。
不过还有一个办法,pjaxhttp://www.welefen.com/pjax-for-ajax-...
像github就是用的这个方法,可以改变url但不跳转也不全部刷新页面
天蓬老师2017-04-10 12:45:49
这个问题,应该是ajax库,将每次ajax操作,作为浏览器历史添加进了浏览器。所以浏览器无法回到上一个页面。
这是有用的,因为很多情况下,ajax是不刷新操作,但是单一页面的不同状态,都不能通过url表示,比如,用户打开了一个ajax邮件系统的某一封邮件,这时他收藏了或者copy了当前地址,期望下一次也能通过这个地址打开同样的邮件。但是如何做呢?不好的ajax系统,总是会回到最初的状态。所以ajax库会利用URL中的fragment id,来实现。同理的,现在主流浏览器,也会自动的将fragment id的变化添加的浏览器历史中。即用浏览器的回退和前进来操作。这在早期IE中不支持,所以很多ajax库还专门写了代码。
URL的格式一般为:scheme://domain:port/path?query_string#fragment_id
最后一部分。