JSP数据分页导出下载显示进度条样式

1、思路

分页数据查询,同时缓存设置进度(为当前取出数据点总数据比例)

2、界面进度条 为 异步请求缓存比例

3、代码

css:

body{
position:relative;
}
.mask{
position:absolute;
left:0px;
top:0px;
height:100%;
width:100%;
background-color: #eee;
display:none;
filter:alpha(opacity=50); /*IE滤镜,透明度50%*/
-moz-opacity:0.5; /*Firefox私有,透明度50%*/
opacity:0.9;/*其他,透明度50%*/
z-index:999;
}
.out{
margin:auto;
margin-top:20%;
text-align:center;
height:30px;
width:500px;
background-color: #fff;
border:1px solid red;
position:relative;
}
.in{
position:absolute;
left:-1px;
top:0px;
height:28px;
width:0px;
background-color: red;
}
.num{
position:absolute;
left:0px;
top:0px;
height:30px;
line-height:30px;
width:500px;
text-align:center;
position:relative;
}

js:

$(function(){
$(.donwload).click(function(){
var ulr = ----;
var key = new Date().getTime();
url+="?key="+key;
downloadFile(url);
process(key);
});
});
function downloadFile(url) {
try{
var elemIF = document.createElement("iframe")
elemIF.style.display = "none";
document.body.appendChild(elemIF);
elemIF.src = url;
}catch(e){
}
}
function process(key){
$.ajax({
type: 'GET',
url: ----------,
async:true,
success:function (data) {
if(data){
data = parseFloat(data).toFixed(2);
$(".in").css("width",(data/100*500)+"px");
$(".num").text(data+"%");
if(data >= 100){
setTimeout(function(){
$(".mask").hide();
}, 3000);
}else{
setTimeout(function(){
process(key);
}, 1000);
}
}
},
error:function () {
}
});
}

downaction

try{
redisTemplate.opsForValue().set("down_process_"+qm.getKey(),0.1);
int i = 0;
while(true){
qm.getPage().setNowPage(i++);
qm.getPage().setPageSize(100);
Page dbpage = 取当前页数据
List<> list = (List<>) dbpage.getResult();
if(list != null && list.size() > 0){
if(list.size() < 100) {
redisTemplate.opsForValue().set("down_process_"+qm.getKey(), 100);
}else{
double process = i * 100.0 / dbpage.getTotalCount() * 100;
if(process < 0.1)process=0.1d;
redisTemplate.opsForValue().set("down_process_"+qm.getKey(), process);
}
}
logger.info("-------value:" + redisTemplate.opsForValue().get("down_process_"+qm.getKey()));
if(list == null || list.size() < 100) {
redisTemplate.opsForValue().set("down_process_"+qm.getKey(),100);
break;
}
logger.info("-------value:" + redisTemplate.opsForValue().get("down_process_"+qm.getKey()));
continue;
}
}catch(){
}finally{
redisTemplate.opsForValue().set("down_process_"+qm.getKey(),100);
redisTemplate.expire("down_process_"+qm.getKey(),5, TimeUnit.MINUTES);
}
public double process(HttpServletRequest request, HttpServletResponse response,@PathVariable(value ="key") String key) throws IOException {
Double process = 0.1d;
try{
int i = 0;
while(true) {
if(i>=2){
process = 100d;
break;
}
i++;
if (redisTemplate.opsForValue().get("down_process_"+key) == null) {
Thread.currentThread().sleep(1000l);
continue;
}else{
process = Double.valueOf(redisTemplate.opsForValue().get("down_process_"+key).toString());
break;
}
}
}catch (Exception e){
process = 0.1d;
e.printStackTrace();
}finally {
return process;
}
}

以上所述是小编给大家介绍的JSP数据分页导出下载显示进度条样式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • JSP response对象实现文件下载的两种方式

    一.JSP隐含对象response实现文件下载的介绍 (1)在JSP中实现文件下载最简单的方法是定义超链接指向目标资源,用户单击超链接后直接下载资源,但直接暴露资源的URL 也会带来一些负面的影响,例如容易被其它网站盗链,造成本地服务器下载负载过重. (2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存 为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,这种下载方法的优点是服 务器端资源路径的

  • JSP开发之Struts2实现下载功能的实例

    JSP开发之Struts2实现下载功能的实例 1.Action 类 package com.favccxx.strutsdemo; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import com.opensymphony.xwork2.ActionSupport; public class DownloadAction extends ActionSupport { priva

  • JSP实现远程文件下载保存到服务器指定目录中的方法

    本文实例讲述了JSP实现远程文件下载保存到服务器指定目录中的方法.分享给大家供大家参考,具体如下: <%@page import="java.net.*,java.io.*"%> <%! public boolean saveUrlAs(String photoUrl, String fileName) { //此方法只能用户HTTP协议 try { URL url = new URL(photoUrl); HttpURLConnection connection =

  • jsp实现Servlet文件下载的方法

    本文实例讲述了jsp实现Servlet文件下载的方法.分享给大家供大家参考.具体如下: package com; import java.io.IOException; import java.io.PrintWriter; import java.net.URLEncoder; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import j

  • JSP隐含对象response实现文件下载

    一.简单介绍JSP隐含对象response实现文件下载 (1)在JSP中实现文件下载最简单的方法是定义超链接指向目标资源,用户单击超链接后直接下载资源,但直接暴露资源的URL也会带来一些负面的影响,例如容易被其它网站盗链,造成本地服务器下载负载过重. (2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,这种下载方法的优点是服 务器端资源路径的保

  • JSP实现从数据库导出数据到Excel下载的方法

    本文实例讲述了JSP实现从数据库导出数据到Excel下载的方法.分享给大家供大家参考,具体如下: 关键代码: <%@ page contentType="application/msexcel" %> <% //response.setHeader("Content-disposition","inline; filename=videos.xls"); response.setHeader("Content-disp

  • JSP实现从不同服务器上下载文件的方法

    本文实例讲述了JSP实现从不同服务器上下载文件的方法.分享给大家供大家参考,具体如下: 最近在项目当中遇到模板下载的问题:当服务器为Tomcat的时候文件可以正常下载,但是当放到线上(WebLogic服务器)下载的模板为空,现记录下解决办法. public void importSuccess() throws Exception { try { HttpServletResponse response = Struts2Utils.getResponse(); // 重置响应 response

  • JSP中实现判断客户端手机类型并跳转到app下载页面

    判断客户端手机类型,并跳转到相应的app下载页面 实现的原理,是检测浏览器的 USER-AGENT 这个header,然后根据正则表达式来确定客户端类型. 如果都不匹配,Fallback回退策略是显示对应的页面,让用户自己选择. 适合采用二维码扫描方式下载APP: JSP版本的代码如下所示:其他服务端版本请百度搜索. <%@page import="java.util.regex.Matcher"%> <%@page import="java.util.re

  • JSP数据分页导出下载显示进度条样式

    1.思路 分页数据查询,同时缓存设置进度(为当前取出数据点总数据比例) 2.界面进度条 为 异步请求缓存比例 3.代码 css: body{ position:relative; } .mask{ position:absolute; left:0px; top:0px; height:100%; width:100%; background-color: #eee; display:none; filter:alpha(opacity=50); /*IE滤镜,透明度50%*/ -moz-opa

  • Android使用AsyncTask下载图片并显示进度条功能

    在Android中实现异步任务机制有两种方式,Handler和AsyncTask.这篇文章给大家介绍Android使用AsyncTask下载图片并显示进度条功能. AsyncTask下载图片并显示下载进度,异步类AsyncTask配合进度条,简练! public class AsyncTaskActivity2 extends Activity { private Button btnDown;//图片框 private ImageView ivImage;//图片URL private sta

  • Python 给下载文件显示进度条和下载时间的实现

    大家在下载文件时能够显示下载进度和时间非常好,其实实现它方法很简单,这里我写了个进度条的模块,其中还附带上了运行时间也就是下载时间了. 该模块调用了三个库: 1.os 2.requests 3.time 话不多说,先上代码!!!. # 进度条模块 def progressbar(url,path): if not os.path.exists(path): # 看是否有该文件夹,没有则创建文件夹 os.mkdir(path) start = time.time() #下载开始时间 respons

  • Android 下载文件通知栏显示进度条功能的实例代码

    1.使用AsyncTask异步任务实现,调用publishProgress()方法刷新进度来实现(已优化) public class MyAsyncTask extends AsyncTask<String,Integer,Integer> { private Context context; private NotificationManager notificationManager; private NotificationCompat.Builder builder; public M

  • android多线程断点下载-带进度条和百分比进度显示效果

    android多线程断点下载,带进度条和百分比显示,断点下载的临时数据保存到SD卡的文本文档中,建议可以保存到本地数据库中,这样可以提高存取效率,从而提高系统性能. 效果: 打开软件: 下载中: 下载完毕: 附代码如下: package com.yy.multiDownloadOfBreakPoint; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.R

  • 基于ajax实现文件上传并显示进度条

    下面给大家分享下基于ajax实现文件上传并显示进度条.在jsp部分,需要设计一个表单,form的属性添加 enctype="multipart/form-data",设计一个iframe,作为隐藏.form的target等于iframe的name; 在servlet部分:文件上传用的Commons-FileupLoad,需要两个Jar,commons-fileupload和commons-io,少了第二个会报出找不到类的异常: 第一个servlet处理上传,及把上传进度保存到sessi

  • 网页加载时页面显示进度条加载完成之后显示网页内容

    现在网上有很多网页加载进度条 ,但大多都是时间固定的. 下面的当查询大量数据时,网页加载较慢,在网页加载时,显示进度条,当网页加载完成时,进度条消失,显示网页已经加载完成的内容. 复制代码 代码如下: <html> <script language=VBScript> Dim Bar, SP Bar = 0 SP = 100 Function Window_onLoad() Bar = 95 SP = 10 End Function Function Count() if Bar

  • jquery+ajax实现异步上传文件显示进度条

    前言: 今天项目中加了一个上传文件加进度条的需求,我就搞了一下.时间宝贵不多说,直接进入正题. 异步上传文件是要用到ajax里的一个小的知识点:xhr(XML Http Request)一个对象,xhr对象也是ajax一个核心. 关于使用它也很简单:就四步(下面这样写也可以向后端进行发送请求) var xhr=new XMLHttpRequest()//创建xhr对象 xhr.open('请求方式','请求的地址') xhr.send()//发佛那个请求 xhr.onreadystatechan

  • Python实现实时显示进度条的6种方法

    目录 第1种:普通进度条 第2种:带时间的普通进度条 第3种:tqdm库 第4种: alive_progress库 第5种:PySimpleGUI库 第6种:progressbar库 相信大家对进度条一定不陌生了,比如在我们安装python库的时候可以看到下载的进度,此外在下载文件时也可以看到类似的进度条,比如下图这种: 应用场景:下载文件.任务计时等 今天辰哥就给大家分享Python的6种不同的实现实时显示处理进度的方式,文中每一种方式都附带一个案例,并提供官方文档,供大家学习,自定义去修改.

  • Python实现实时显示进度条的六种方法

    目录 第1种:普通进度条 第2种:带时间的普通进度条 第3种:tqdm库 第4种: alive_progress库 第5种:PySimpleGUI库 第6种:progressbar库 总结 相信大家对进度条一定不陌生了,比如在我们安装python库的时候可以看到下载的进度,此外在下载文件时也可以看到类似的进度条,比如下图这种: 应用场景:下载文件.任务计时等 今天辰哥就给大家分享Python的6种不同的实现实时显示处理进度的方式,文中每一种方式都附带一个案例,并提供官方文档,供大家学习,自定义去

随机推荐