All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
SQL循序渐进(9)SELECT语句_[SQL,Server教程]
asp.net防止页面跳回顶部的方法_[Asp.Net教程]
卸载SQL Server2000后不能再次安装的问题解决方法_[SQL Server教程]
C#中设置窗体的属性
IE和FireFox下javascript读写XML实现广告轮换_JavaScript技术_编程技术
不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令_[SQL Server教程]
Delphi过程和函数的重载
总结:表单复选框向PHP传输数据的研究_php资料_编程技术
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量_[PHP教程]
PHP技巧:PHP脚本编程中的文件系统函数库_php资料_编程技术
Reading number is top 10 pictures
The goddess of the single reason2
陪睡门马睿菈自曝写真 称首拍大尺度照片3
The money of more than 100 countries and regions5
NeedWallpaper8
Sora aoi calligraphy show
Female model behind the bitterness, often being overcharged1
Cesarean section, bloody, silently into it!2
No trading, no killing
The money of more than 100 countries and regions21
Absolutely shocked. National geographic 50 animal photographys3
Download software ranking
尖东毒玫瑰A
Unix video tutorial13
Boxer's Top ten classic battle1
Call Of Duty5
Tram sex maniac 2 (H) rar bag15
Wild things 2
Boxer's Top ten classic battle8
jdk1.5
Ashlynn Video2
I'm come from Beijing2
归海一刀 published in(发表于) 2014/3/16 2:53:07 Edit(编辑)
AJAX进度条_[AJAX教程]

AJAX进度条_[AJAX教程]

AJAX进度条_[AJAX教程]

在最近的一个项目中,有一个上传功能:上传一个cvs文件,然后解析此文件并写入数据库
由于经常需要传很大的文件,客户完成此功能往往需要40分钟,在这个过程中,页面也没有任何提示,用户体验非常不好?
为何不用ajax作一个进度条呢?
分两步完成此需求:
一:写一个简单的ajax,实现最简单的进度条功能。
二:把此进度条改造为项目可用的进度条。


一:最简单的进度条
1。客户端每2秒发送一个createXMLHttpRequest请求给服务端.并得到服务端返回的进度数据.根据服务端返回的数据,用javascript更新一个table的width,
这样就模拟了一个进度条.
progressBar.html.内容如下:





Ajax Progress Bar











86%


















 
















completed







onClick="go();">





2:一个模拟servlet:ProgressBarServlet1。java,内容如下:
package com.cyberobject.lcl.ajax;


import java.io.*;


import javax.servlet.*;
import javax.servlet.http.*;


/**
*
* @author nate
* @version
*/
public class ProgressBarServlet extends HttpServlet {
private int counter = 1;

/** Handles the HTTP GET method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String task = request.getParameter("task");
String res = "";

if (task.equals("create")) {
res = "1";
counter = 1;
}
else {
String percent = "";
switch (counter) {
case 1: percent = "10"; break;
case 2: percent = "23"; break;
case 3: percent = "35"; break;
case 4: percent = "51"; break;
case 5: percent = "64"; break;
case 6: percent = "73"; break;
case 7: percent = "89"; break;
case 8: percent = "100"; break;
}
counter++;

res = "" + percent + "";
}

PrintWriter out = response.getWriter();
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
out.println("");
out.println(res);
out.println("
");
out.close();
}

/** Handles the HTTP POST method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
}
3:在web。xml中配置好servlet映射:



ProgressBarServlet
ProgressBarServlet
com.cyberobject.lcl.ajax.ProgressBarServlet



ProgressBarServlet
/ProgressBarServlet


此时进度条已经可以运行了。接下来的工作就是把它移植到我们的系统。
二:
1:在写数据库的class DbOperater中,增加一个progress属性
private int progress;


2:在写数据库的class中,增加一个getProgress()方法:
public int getProgress()
{
return progress;
}
3: 在写库的for循环中, progress++;
4:在调用DbOperater的servlet中调用DbOperater的getProgress()方法,这样就为进度条提供了实时数据.
5:另外:servlet的doGet()用来获得进度数据,doPost()用来上传文件和写库操作.彼此分工明确.
特此存档.

来源:http://blog.csdn.net/javatwt







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.