进度信息展示总结
进度信息展示,参与后台数据交互,考虑不全就容易出bug。
1. 后台脚本出错
判断后台返回的状态码,如果返回非预期值:应当保持界面当前进度值;
如果明确出错,且不能恢复,退出进度展示,提示用户发生错误。
2. 服务器重启
一般在系统升级、证书导入过程中,会重启服务器,界面会失去响应。
此时,进度信息不能挂掉,要一直尝试请求服务器,直到服务器恢复正常状态,继续下面的进度。
3. 页面刷新
进度展示到一半,用户刷新了页面,进度信息要能恢复当前的状态。那如何判断正在进度过程中呢?
创建进度的时候,需要建立一个临时锁文件,根据这个锁文件来判断是否在进度过程中;需要注意的是
锁文件最好加一个创建时的时间戳,也许会用到,后台脚本可以依据这个时间戳来返回正确的值,。
4. cookie,会话过期
进度展示到一半,会话过期了,ajax请求返回的数据,是登陆界面的页面代码。
应该设置有关读取进度信息的url,永远不会超时。
5. 进度展示过程中与要与用户交互
进度展示了一半,突然要让用户自己选择配置、一些选项,才能接着下面的进度。
最好先让用户配置完,再接着去升级,进度过程中尽量不要涉及用户操作。
如果非得配置,要先停止当前换取进度信息的脚本,等用户配置完了,再继续,依然要保证进度不能回退回去。
6. 多用户访问同一进度页面
如果多个用户进入到统一进度页面,可能会有这样的需求,有一个用户在这个页面在进度过程中,那么其它用户
打开这个页面,也要跟那个用户展示的一样。
那么一打开此页面,就需要判断一个标识(如创建的临时锁文件),来决定是否展示进度过程。
7. 问题排查
与后台脚本交互,往往不止一步操作,界面如何知道后台脚本运行是我们期望当中的。每一步操作我们都要学会记录日志,最好能将
日志信息写到文件中,只要进度展示有问题,我们首先去排查是不是后台脚本运行出错的问题。