博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用原生JS 或jquery ajax 获取上传图片实时进度
阅读量:6899 次
发布时间:2019-06-27

本文共 1870 字,大约阅读时间需要 6 分钟。

话不多说 直接上代码

jquery 版

$.ajax({        url: 'URL',        type: 'POST',        data: fd,        processData: false, //用来回避jquery对formdata的默认序列化,XMLHttpRequest会对其进行正确处理          contentType: false, //设为false才会获得正确的conten-Type          xhr: function() { //用以显示上传进度              var xhr = $.ajaxSettings.xhr();            if (xhr.upload) {                xhr.upload.addEventListener('progress', function(event) {                    var percent = Math.floor(event.loaded / event.total * 100);                    document.querySelector("#progress .progress-item").style.width = percent + "%";                }, false);            }            return xhr        },        success: function(data) {        }    })

原生js版

var xhr = new XMLHttpRequest();    xhr.open('POST', 'url');    // 上传完成后的回调函数    xhr.onreadystatechange = function() {        if (xhr.status === 200) {              console.log(xhr.responseText);        } else {             console.log('上传出错');        }    };    // 获取上传进度    xhr.upload.onprogress = function(event) {        console.log(event.loaded)        console.log(event.total)        if (event.lengthComputable) {            var percent = Math.floor(event.loaded / event.total * 100);            document.querySelector("#progress .progress-item").style.width = percent + "%";            // 设置进度显示            console.log(percent)        }    };    xhr.send(fd);

html 和相关进度条css

#progress {        height: 10px;        width: 300px;        border: 1px solid gold;        position: relative;        border-radius: 5px;    }        #progress .progress-item {        height: 100%;        position: absolute;        left: 0;        top: 0;        background: chartreuse;        border-radius: 5px;        transition: width .3s linear;    }

大字表示注意,网速快了 看到的进度条是一瞬间完成,打印的percent也都是100,如果要看比较明显的效果可以把控制台的模拟网速调成slow 3G,就能看到比较明显的效果。

clipboard.png

有任何问题 下方留言

转载地址:http://ugpdl.baihongyu.com/

你可能感兴趣的文章
php设置延迟响应,php能不能做到,只给某个用户延迟响应,其它用户不受影响?...
查看>>
oracle经常无响应,Oracle无响应故障
查看>>
php xml 转换数组函数,php xml转换成数组格式
查看>>
oracle12c不买会咋样,ORACLE 12c - “不是单一群体功能”
查看>>
php simplexml_load_file 详解,php中simplexml_load_file函数用法实例讲解
查看>>
linux登录用户who,技术|Linux who 命令 – 显示系统登录者
查看>>
linux内核下载 2.6.32,linux内核升级到2.6.32
查看>>
client linux amd64,linux 下安装minio并配置
查看>>
linux中配置nginx,linux中编译安装和配置nginx
查看>>
Linux循环sql调用,shell中使用SQL实现查询
查看>>
linux中make命令大全,Linux中的命令 make -f 是什么意思
查看>>
qcustomplot在Linux开发板,QCustomplot的使用以及编译动态链接库的过程
查看>>
aes逆字节替换C语言,AES加密算法之字节替换操作
查看>>
2017福建省c语言编程题,[蓝桥杯][2017年第八届真题]九宫幻方-题解(C语言代码)
查看>>
c语言实验九结构体和共用体的区别,[C语言程序设计实验九结构体和共用体答案西北民大电气院.doc...
查看>>
android刷机工具mac版,刷机精灵mac版
查看>>
android+如何封装功能,Android - 如何封装 opengl 流程
查看>>
android c 高级编程源码,Objective-C高级编程
查看>>
android 剪贴板增强工具,剪切板增强工具(ClipboardFusion Pro)
查看>>
opencv android盒子,入门免费阅读_深入OpenCV Android应用开发免费全文_百度阅读
查看>>