论坛首页 Web前端技术论坛

如果使用AJAX,如何解决这些问题

浏览 14152 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-08-25  
1、用户刷新当前页面,如何保证刷新后的页面与刷新前保持一致。在一个基于AJAX渲染出来的页面上,很多内容都是动态加到页面上的
2、用户点击回退按钮,怎么处理。看了好多AJAX的demo,没一个能处理好的
3、恕我无知,浏览器段JS中好像没有线程管理的概念,如果我创建多个异步XHR完成不同的任务,如何保证当前context中的数据的独占或者lock?


言不达意之处,请包涵
   发表时间:2005-08-25  
copenhagen 写道
1、用户刷新当前页面,如何保证刷新后的页面与刷新前保持一致。在一个基于AJAX渲染出来的页面上,很多内容都是动态加到页面上的
2、用户点击回退按钮,怎么处理。看了好多AJAX的demo,没一个能处理好的
3、恕我无知,浏览器段JS中好像没有线程管理的概念,如果我创建多个异步XHR完成不同的任务,如何保证当前context中的数据的独占或者lock?


言不达意之处,请包涵


我接触ajax时间不长,凭我了解的,ajax对这些好像都不好处理。
不管怎样,这些东西在很多应用中不一定是重要的,或者尽可能缩小那些的影响。如果非要关心这些,可能试着自己去处理,如3.自己可以模仿thread的lock,设计个锁,然后每次xhr结果时操作共享数据时先获得锁,完了再释放
0 请登录后投票
   发表时间:2005-08-25  
copenhagen 写道
2、用户点击回退按钮,怎么处理。看了好多AJAX的demo,没一个能处理好的

老问题了,搜索一下“历史”+“IFrame”。
0 请登录后投票
   发表时间:2005-08-25  
前两点以我现在的水平,还想不出有什么好办法,问问dlee喽,第三点有些勉强了吧,那你就同步呗,如果用ajax不能,那你回到原来的方式你怎么解决吧?
我的感觉是ajax并不能包含web开发的全部,比较适合企业软件的开发,如果你觉得ajax确实不能满足你的需求,那你就暂时回到原来的方式好了.
与其空泛的讨论,或者看一些简单的DEOM来寻求答案,倒不如坐下来写一些CODE或许收获更大。
0 请登录后投票
   发表时间:2005-08-25  
1、无法解决。因为浏览器刷新后,会完全抛弃内存中原有的所有对象,而 JavaScript 无法访问本地资源(文件系统、数据库、etc.),因此无法把这些状态保存下来。
一个解决方案是设置一个 onunload 事件函数,在浏览器执行刷新动作前会调用,将 JavaScript 的状态通过 XMLHTTP/IFrame 上传到服务器,服务器负责保存这些状态。浏览器刷新后,再调用 onload 事件函数通过 XMLHTTP/IFrame 向服务器请求这些数据,并且恢复刷新前的状态。

3、对每个需要保护的内容,设置一个 flag,实现排它锁的机制。
0 请登录后投票
   发表时间:2005-08-25  
其实1完全是吹毛求疵,不是问题的问题,没事找事。
道理很简单,C/S系统中就一定有你这样的吗?如果只是在界面动态修正的数据(状态A),你C/S系统(或者其它任何系统)如果不是刻意去做根本不会说在重新进入这个功能(等同于刷新)的时候进入A状态,你仔细想,什么情况下会需要这样的功能,什么样的系统会需要这样的功能?
0 请登录后投票
   发表时间:2005-08-25  
可以自己实现历史管理(像application一样的东西)
0 请登录后投票
   发表时间:2005-08-26  
copenhagen 写道
1、用户刷新当前页面,如何保证刷新后的页面与刷新前保持一致。在一个基于AJAX渲染出来的页面上,很多内容都是动态加到页面上的
2、用户点击回退按钮,怎么处理。看了好多AJAX的demo,没一个能处理好的
3、恕我无知,浏览器段JS中好像没有线程管理的概念,如果我创建多个异步XHR完成不同的任务,如何保证当前context中的数据的独占或者lock?


言不达意之处,请包涵


这些不应该全算是AJAX的问题,因为你是在沿袭传统设计的思维,然后希望AJAX能提供解决方案。AJAX是希望设计师们利用AJAX改良设计。

关与第一条,以前有一种常见的做法就是弹出无工具栏的新窗做为主界面,同时屏蔽掉F5键。
第二条也是类似,同时屏蔽掉右键,只允许使用本系统提供的Back。
第三条则包含业务逻辑,自然是要自己编程解决。

还是那句话,改良设计!
0 请登录后投票
   发表时间:2005-10-20  
我感觉并发问题尽量使用java框架去做好些,ajax牵扯过多的并非控制程序,会使维护变得臃肿不堪,怎么说ajax也只不过是一个最表现层的技术,使用的太夸张就带来了没有必要的复杂!
0 请登录后投票
   发表时间:2005-10-27  
Gmail在IE中是可以后退的,在firefox和opea的后退都不好用,有人了解Gmail中用到的ajax的架构吗?
0 请登录后投票
论坛首页 Web前端技术版

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