djnago Excel数据上传进度条
发布日期:2022-02-17 04:52:26 浏览次数:16 分类:技术文章

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

最近处理一个小问题,点击上传excel数据表格,并显示进度条

直接调用ajax中xhr来显示进度条,发现进度条瞬间100%,页面数据并没有显示(原因:上传文件进度完成,但数据并没有完全存入数据库)

解决方法:获取数据存储的进度

在后台设置全局变量,获取存入数据库进度number_x = Nonenumber_y = None
class CaseImportsView(AdminUserRequiredMixin, JSONResponseMixin, FormView)           global number_x    global number_y    pass

创建一路由,发送前台

class JinDuTioaView(View):    def get(self, request, *args, **kwargs):        print(number_x, "yyyyyyyyyyyyyyyyy")        print(number_y)        number = [number_x, number_y]        return HttpResponse(json.dumps(number, ensure_ascii=False))前台处理(进度获取ajax,通过定时器,100ms请求一次,获取进度)
var xhr_provider = function() {    var xhr = new XMLHttpRequest();    var prog_url = xxxxx    var xx    var sitv = setInterval(function () {        $.ajax({            type: "get",            url: prog_url,            contentType: "application/json",            dataType: "json",            success: function (res) {                xx = parseInt(res[1])                var x = parseInt(res[1])                var y = parseInt(res[0])                var ele = document.getElementById('3');                var percent = Math.round(x * 100 / y);                ele.style.width = percent + '%';                console.log("1111111111111111111", percent)                document.getElementById('2').innerHTML = percent + '%';                if (percent == 100) {                    clearInterval(sitv)                    document.getElementById('upload_hint').innerHTML = '上传完成!'                } else {                    document.getElementById('upload_hint').innerHTML = '正在导入中...请不要重复点击“确认”按钮'                }            }        })    }, 100)    return xhr;};

 

点击上传按钮,显示进度

$.ajax({    url: xxxx,    type: 'post',    dataType: 'json',    // async: false,    data: {        "csrfmiddlewaretoken": $("[name=csrfmiddlewaretoken]").val()    },    // processData: false,    xhr: xhr_provider,    success: success});

 

完成,,方法比较笨,见谅

转载地址:https://blog.csdn.net/qq_41429841/article/details/107536433 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:什么是数字签名?
下一篇:dajngo 前后端传输数据进行加密 RSA加密

发表评论

最新留言

很好
[***.229.124.182]2024年03月26日 09时00分19秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Vue监视---vue工作笔记0005 2021-06-29
Vue条件渲染---vue工作笔记0008 2021-06-29
Vue事件处理_vue的事件处理超级方便_功能强大---vue工作笔记0011 2021-06-29
Vue表单数据自动收集---vue工作笔记0012 2021-06-29
Vue生命周期---vue工作笔记0013 2021-06-29
ES6-ES11新特性_ECMAScript_简单介绍---JavaScript_ECMAScript工作笔记001 2019-04-26
ES6-ES11新特性_ECMAScript相关名词介绍_---JavaScript_ECMAScript工作笔记002 2019-04-26
ES6新特性_let变量声明以及声明特性---JavaScript_ECMAScript_ES6-ES11新特性工作笔记003 2019-04-26
Sharding-Sphere,Sharding-JDBC_介绍_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记001 2019-04-26
Sharding-Sphere,Sharding-JDBC_分库分表介绍_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记002 2019-04-26
C++_类和对象_对象特性_构造函数的分类以及调用---C++语言工作笔记041 2019-04-26
C++_类和对象_对象特性_拷贝构造函数调用时机---C++语言工作笔记042 2019-04-26
C++_类和对象_对象特性_构造函数调用规则---C++语言工作笔记043 2019-04-26
C++_类和对象_对象特性_深拷贝与浅拷贝---C++语言工作笔记044 2019-04-26
AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237 2019-04-26
AndroidStudio_android中实现对properties文件的读写操作_不把properties文件放在assets文件夹中_支持读写---Android原生开发工作笔记238 2019-04-26
弹框没反应使用Looper解决_the caller should invoke Looper.prepare() and Looper.loop()---Android原生开发工作笔记239 2019-04-26
Command line is too long. Shorten command line for Application---微服务升级_SpringCloud Alibaba工作笔记0067 2019-04-26
AndroidStudio_android实现双击_3击_监听实现---Android原生开发工作笔记240 2019-04-26
C++_类和对象_对象特性_初始化列表---C++语言工作笔记045 2019-04-26