AJAX技术实现网页无刷新进度条显示

来源:互联网 责任编辑:栏目编辑 发表时间:2013-07-01 19:55 点击:

在网页中实现页面无刷新的进度条显示不是一件很麻烦的事情,但如果这个进度条要能准确反映当前事务或者复杂逻辑的执行进度,那么却并不是一件容易的事情,目前AJAX技术流行,所以本文作者试想通过AJAX来实现网页准确进度条,以銄读者。
 首先应该想一个问题,复杂事务或者事务逻辑如果不按线程方式运行,运行在JAVA运行中根本无法跳过复杂事务去处理进度显示,所以我们这边很自然的想到复杂事务或者业务逻辑用多线程实现。
 再想另一个问题,事务处理应该需要网页上的一系列参数信息的,那么如何获取这些参数呢,这个似乎容易想到,传一个HttpServletRequest过去就可以了。
 为了进度条公用,所有的复杂事务处理都应该实现同一个接口或者抽象类,我这里用了一个接口,如下:

以下为引用的内容:
public interface IprogressBar {
  public void execute(HttpServletRequest req,String pbid);//执行复杂事务
}
用一个实现多线程的抽象类,如下:
public abstract class AbstractProgressBar extends TimerTask implements IprogressBar {
 private HttpServletRequest request;
 private String pbid;
  public AbstractProgressBar(){
 }
 //子类必须重载这个函数
 public abstract void execute(HttpServletRequest req, String pbid);
 public void run() {
  execute(request,pbid);
 }
 public void setRequest(HttpServletRequest req){
  this.request=req;
 }
 public void setPbid(String pbid){
  this.pbid=pbid;
 }
}
设计到具体项目不便给出代码,这里我另外写了一个测试类,也就是执行复杂事务处理的类,如下:
public class TestPB extends AbstractProgressBar{
 public void execute(HttpServletRequest req, String pbid) { 
  String sql="insert into temp_table(idx)values(?)";
  int pid=Integer.parseInt(pbid);
  ProgressBar pb=new ProgressBar(pid,300,0,1);
  //模拟大事务
  for(int i=0;i<300;i++){
   DbUtils.executeUpdate(sql,new Object[]{new Integer(i)});
  //控制进度
pb.stepIt();
  }
 }
}
接着利用AJAX技术来实现网页的无刷新进度条实现,代码如下:
<%@ page contentType="text/html;charset=UTF-8"%>
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • WordPress添加百度喜欢按钮小技巧
  • Wordpress 博客如何实现自定义Gravatar头像
  • 网站设计分析:建立良好的视觉层级
  • 网站设计分析:“中国式设计”的三个方向
  • 案例分析:奥巴马筹款网站的制作过程
  • 创建不平衡的平衡:在网页设计中使用不对称设计
  • 7大主流B2C首页导航栏设计对比分析
  • Wordpress页面模板制作方法及使用
  • css控制文字前的小图标
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1