jQuery执行进度提示窗口的实现(progressbar)
使用jQuery原生插件,先看效果:
主要是progressbar的更新进度以及“请稍等”后省略号、倒计时关闭的效果
如果执行单个任务的时间较长,会导致浏览器假死,一定要使用异步,代码结构要稍作调整。
<%--
Created by IntelliJ IDEA.
Author: Duelsol
Date: 2015/2/25
Time: 16:21
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>执行进度条示例</title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/framework/css/blue/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/framework/css/blue/jquery-plugin.css"/>
<script type="text/javascript" src="${pageContext.request.contextPath}/framework/js/jquery.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/framework/js/jquery-ui.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/framework/js/jquery-plugin.js"></script>
<script type="text/javascript">
// 总执行数
var totalMission;
// 完成执行数
var completeMission;
// 具体执行任务
var bnContainer = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
// 将于X秒后关闭
var countdown; // 以下4个用于clearInterval和clearTimeout
var interval;
var timeout = [];
var finish;
var close; // 执行按钮点击事件
function importAll() {
totalMission = 10;
completeMission = 0; $("body").append("<div style='display:none' id='waitimport'><div style='padding-top: 20px'></div><div id='divProgressbar'></div><div style='text-align: center'><span id='divText' style='margin: auto'></span></div></div>");
var $alertDiv = $("#waitimport");
$alertDiv.dialog({
title: "<span id='changingtitle'>导入中,请稍等<span id='changingdot'></span></span>",
modal: true,
resizable: false,
zIndex: 99999*2
});
$alertDiv.parent().find(".ui-dialog-titlebar-close").hide();
$("#divProgressbar").progressbar(); interval = setInterval("changeDot()", 1000); alterProgressBar(bnContainer[completeMission]);
timeout.push(setTimeout("running(" + completeMission + ")", 1500));
clearTimeout(finish);
clearInterval(close);
} // 改变进度条
function alterProgressBar(text) {
$("#divText").html("正在执行" + text);
$("#divProgressbar").progressbar("option", "value", completeMission / totalMission * 100);
} function running() {
alterProgressBar(bnContainer[++completeMission]);
if (completeMission == totalMission) {
finishImport();
} else {
timeout.push(setTimeout("running(" + completeMission + ")", 1500));
}
} function finishImport() {
clearInterval(interval);
for (var i = 0; i < timeout.length; i++) {
clearTimeout(timeout[i]);
} countdown = 5;
$("#changingtitle").html("执行结束");
$("#divText").html("本窗口将于<span id='countdown'>" + countdown + "</span>秒后关闭");
finish = setTimeout('$("#waitimport").remove()', 5000);
close = setInterval('$("#countdown").html(--countdown)', 1000);
} // 省略号每秒改变事件
function changeDot() {
var changingdot = $("#changingdot");
if (changingdot.html() == "") {
changingdot.html(".");
} else if (changingdot.html() == ".") {
changingdot.html("..");
} else if (changingdot.html() == "..") {
changingdot.html("...");
} else {
changingdot.html("");
}
} function changeColor(type) {
if (type == 1) {
$("#bn_importall").css("color", "lightskyblue").css("background-color", "white");
} else {
$("#bn_importall").css("color", "white").css("background-color", "lightskyblue");
}
}
</script>
</head>
<body>
<div style="text-align: center;">
<input type="button" id="bn_importall" onclick="importAll()" onmouseover="changeColor(1)" onmouseout="changeColor(2)" value="执行"
style="width: 250px;height: 100px;cursor: pointer;font-size: 50px;color: white;margin: auto;background-color: lightskyblue;border: dashed"/>
</div>
</body>
</html>
jQuery执行进度提示窗口的实现(progressbar)的更多相关文章
- JQuery入门——进度条
越来越觉得常规javascript已经跟不上节奏了,打算学点进阶的,从JQuery学起. JQuery是一个Javascript库,可以从JQuery.com下载,放到本地,用 <script ...
- jquery自定义进度条与h5原生进度条
介绍一款自定义的进度条 <div class="box-nine"> <div class="progress"> <!--一 ...
- pv命令监控Linux命令的执行进度
pv命令监控Linux命令的执行进度 http://www.techweb.com.cn/network/system/2015-12-14/2241124.shtml yum install -y ...
- 通过DeveloperApi获取spark程序执行进度及异常
在应用spark时,经常要获取任务的执行进度,可以参照jobProgressListener的设计来完成该功能. 以下代码仅供参考,欢迎交流. 效果显示: 代码: package org.apache ...
- 【MS SQL】查看任务执行进度
原文:[MS SQL]查看任务执行进度 备份或还原数据库时,我一般是用MS SQL工具向导来进行,由于工具向导没有显示任务执行过程的状态, 如果数据库比较大执行时间较长的话,对任务啥时候执行完成比较迷 ...
- 【原创】大叔经验分享(19)spark on yarn提交任务之后执行进度总是10%
spark 2.1.1 系统中希望监控spark on yarn任务的执行进度,但是监控过程发现提交任务之后执行进度总是10%,直到执行成功或者失败,进度会突然变为100%,很神奇, 下面看spark ...
- 基于jQuery带进度条全屏图片轮播代码
基于jQuery带进度条全屏图片轮播代码.这是一款基于jQuery实现的oppo手机官网首页带进度条全屏图片轮播特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div ...
- JQuery UI进度条——Progressbar
1.先引入jquery和jquery-ui的js,例子如下: <link href="JqueryUI/jquery-ui.css" rel="stylesheet ...
- 基于Jquery的进度条插件(实用)
Spin.js 最喜欢这款插件了,动画图片的长度.粗细.速度和角度都可以灵活控制,想要做成什么样都可以. 源码下载 在线演示 Percentage Loader 一款轻量的 jQuery 进 ...
随机推荐
- Freeplane中的自动边线颜色功能
今天我将电脑上的Freeplane从1.3.11升级到了1.5.18.发现新版本已经没有了1.3.11中的菜单选项Format → “Automatic edge color”.搜索了一下才发现,该功 ...
- [ An Ac a Day ^_^ ] [kuangbin带你飞]专题八 生成树 UVA 10600 ACM Contest and Blackout 最小生成树+次小生成树
题意就是求最小生成树和次小生成树 #include<cstdio> #include<iostream> #include<algorithm> #include& ...
- Python基础知识学习_Day8
一.类的扩展方法 1.静态方法 语法:@staticmethod,静态方法不能访问公有属性,不能访问类.可在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量. class eat( ...
- 面试题-Java基础-Applet部分
java applet是能够被包含在HTML页面中并且能被启用了java的客户端浏览器执行的程序.Applet主要用来创建动态交互的web应用程序.
- 在二叉搜索树(BST)中查找第K个大的结点之非递归实现
一个被广泛使用的面试题: 给定一个二叉搜索树,请找出其中的第K个大的结点. PS:我第一次在面试的时候被问到这个问题而且让我直接在白纸上写的时候,直接蒙圈了,因为没有刷题准备,所以就会有伤害.(面完的 ...
- linuxlab下虚拟板与主机通信
- 让webstorm支持新建.vue文件
1. 首先安装vue插件,安装方法: file-->setting --> plugin ,点击plugin,在内容部分的左侧输入框不用输入任何东西,直接点击下图中的按钮. 如下图所 ...
- 关于FlagsAttribute
最近在看C#本质论,有介绍FlagsAttribute的特性,看了下源码,发现只是一个简单的特性class和一个构造函数. 调试了一下.NET的源码,发现在console.writeline(***) ...
- python绝技 — 用Scapy测试无线网卡的嗅探功能
代码 #!/usr/bin/python #--*--coding=utf-8--*-- from scapy.all import * def pktPrint(pkt): if pkt.hasla ...
- dplyr 数据操作 常用函数(1)
上面介绍完dplyr中,几个主要的操作函数后,我们再进一步了解dplyr中那些函数可能我们会经常要用到. 这里主要根据dplyr包作者的书籍目录来把它列出来. 1.add_rownames 添加行名称 ...