Extjs示例:extjs ajax 文件上传进度条实现

ExtJS中可以使用表单进行文件上传,并且通过配置waitMsg来显示上传进度信息,但是在实际应用中,我们往往不是通过表单来上传文件,而是通过ajax来进行异步文件上传,那么这个时候该如何监听上传进度呢?答案马上揭晓。

在异步上传中要显示实际进度,通常我们会使用XMLHttpRequest的onprogress回调,在extjs中,同样的可以这样子做。

我们可以覆盖ajax中openRequest方法,返回xhr对象,可以监听XMLHttpRequest的onprogress回调来显示进度条:

  Ext.override(Ext.data.request.Ajax, {

        openRequest: function (options) {

            var xhr = this.callParent(arguments);

            if (options.progress) {

                xhr.upload.onprogress = options.progress;

            }

            return xhr;

        }

    });

之后使用ajax上传数据时,配置progress回调函数即可获取到数据传输进度,示例代码见截图。

上传效果:

注意:使用ajax上传时要设置好Content-Type!

另外贴上跨域上传的代码(图):

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ajax和XMLHttpRequest 我们通常将Ajax等同于XMLHttpRequest,但细究起来它们两个是...
    changxiaonan阅读 6,776评论 0 2
  •   2005 年,Jesse James Garrett 发表了一篇在线文章,题为“Ajax: A new App...
    霜天晓阅读 4,377评论 0 1
  • # Ajax标签(空格分隔): 笔记整理---[TOC]### 从输入网址开始:- 在学习ajax之前,你应该先了...
    V8阅读 2,256评论 1 0
  • ajax作为前端开发必需的基础能力之一,你可能会使用它,但并不一定懂得其原理,以及更深入的服务器通信相关的知识。在...
    萧玄辞阅读 4,247评论 0 0
  • 1、XMLHttpRequest 对象 在浏览器中创建XHR 对象 1.1 XHR 的用法 在使用XHR 对象时,...
    shanruopeng阅读 3,644评论 0 1