ajax刷新问题解决

longlikema 2010-05-16 11:42:16
在页面上点击一个动作,通过ajax异步请求得到内容后,如果这个时候刷新页面(按F5或者浏览器的刷新)页面会回到ajax请求之前的页面状态。

如何能把这个问题解决,因为我现在需要让用户刷新之后还能回到ajax调用后的页面状态。
给点思路也行,我很急,客户在等待方案!!
...全文
241 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
longlikema 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 yefeng_214 的回复:]
使用ajax了 为什么还要整个刷新页面呢?那ajax就没有作用了吗?调用ajax得到数据,用js显示出来应该就可以啦!为什么还要刷新?
[/Quote]
不是我要刷新,而是用户会刷新页面
问题正在解决中,使用的是window.location.hash
yefeng_214 2010-05-26
  • 打赏
  • 举报
回复
我想是因为在刷新的时候,你的ajax结果还没有完全返回过来,整个是需要一点时间的,所以你可以设置一个延时,或者ajax返回success状态才刷新,就可以看到结果啦
yefeng_214 2010-05-26
  • 打赏
  • 举报
回复
使用ajax了 为什么还要整个刷新页面呢?那ajax就没有作用了吗?调用ajax得到数据,用js显示出来应该就可以啦!为什么还要刷新?
haojingbin 2010-05-26
  • 打赏
  • 举报
回复
不知道你页面是什么的,如果是jsp,可以用struts标签来定义,刷新时它会自动保留数据的
hhwydwfg 2010-05-24
  • 打赏
  • 举报
回复
ddd
therock200 2010-05-23
  • 打赏
  • 举报
回复
顶你个!
yliu0 2010-05-23
  • 打赏
  • 举报
回复
改正一下

Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
...
var layout = new Ext.BorderLayout(...);
layout.restoreState(); //恢复状态
yliu0 2010-05-23
  • 打赏
  • 举报
回复
在ExtJS里,状态可以由 Ext.state.Manager 管理。


Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
...
href="Ext.BorderLayout.html">Ext.BorderLayout
var layout = new Ext.BorderLayout(...);
layout.restoreState(); //恢复状态


算是解决方案之一吧。
eduyu 2010-05-23
  • 打赏
  • 举报
回复
客户端对状态的自我感应也最好不要用cookie,用URL里的#后部分为好,不至于发生页面跳转,同时,客户端的ajax引擎根据这个部分自动的更新数据,也就达到了你的局部自我同步的要求。
zhaohuihua 2010-05-23
  • 打赏
  • 举报
回复
不需要记录Cookie
可以用window.location.hash记录状态
提交时修改window.location.hash为某一标志值
用户刷新后在页面onload时判断该标志值
作相应处理即可
toury 2010-05-23
  • 打赏
  • 举报
回复
你把刷新给个明确的定义:使程序功能要求必须刷新,还是用户有可能无意的刷新造成页面复原?

如果是后者,你在onbeforeunload()里提示一下用户就可以了;
<script>
window.onbeforeunload=function(e){
e=e||window.event;
e.returnValue='\n\n刷新将使页面复原,所有新数据将丢失\n\n真的要刷新吗?\nn';
}
</script>

如果用户还是刷,你也没办法,你已经尽到责任了,呵呵
longlikema 2010-05-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zhaohuihua 的回复:]
不需要记录Cookie
可以用window.location.hash记录状态
提交时修改window.location.hash为某一标志值
用户刷新后在页面onload时判断该标志值
作相应处理即可
[/Quote]
window.location.hash不需要考虑删除的时间吗
有没有类似代码参考一下
kyzy_yy_pm 2010-05-20
  • 打赏
  • 举报
回复
奥,你的意死是保存数据啊,用js里的cookie或者在ajax向服务器请求时候就在服务器里将数据cookie了
kyzy_yy_pm 2010-05-20
  • 打赏
  • 举报
回复
怎么会回到ajax之前呢?
hua_nan_she 2010-05-20
  • 打赏
  • 举报
回复
我没有别的意思,我就是想说:我讨厌用ajax,见到它我就郁闷……
qq43695548 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 longlikema 的回复:]
我有一个不成熟的思路,就是在ajax请求之后往cookies里面塞一些必要信息,刷新之后就能根据这些信息自动调用ajax,达到保持页面状态的效果,不过有个问题已经出现,cookies里面内容要删除,什么时候删除等
。。。
哎。。。。
[/Quote]

思路是对的,cookies可以设置过期时间
longlikema 2010-05-20
  • 打赏
  • 举报
回复
我知道ajax的特性-》异步刷新,局部显示
但是我的问题是浏览器刷新动作不能光光刷新ajax作用区域,而是整个页面
现在客户不想要这样的效果
也就是浏览器刷新之后,页面还能保持原样,只是ajax部分再次刷新。。。。
longlikema 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 best17long 的回复:]
调整让页面局部刷新就可以了!
[/Quote]
局部刷新,,怎么做的,可以局部的刷新ajax部分内容?
给个例子,好吧
longlikema 2010-05-16
  • 打赏
  • 举报
回复
我有一个不成熟的思路,就是在ajax请求之后往cookies里面塞一些必要信息,刷新之后就能根据这些信息自动调用ajax,达到保持页面状态的效果,不过有个问题已经出现,cookies里面内容要删除,什么时候删除等
。。。
哎。。。。
best17long 2010-05-16
  • 打赏
  • 举报
回复
调整让页面局部刷新就可以了!
加载更多回复(3)

52,798

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧