zoukankan      html  css  js  c++  java
  • HttpUploader2-queue版本

    1.1 2016版本

    目标:

    1.大幅度优化JS代码,面向开发人员更加友好,逻辑清晰,代码简洁,便于阅读,定制开发,扩展,更加符合企业级应用需求。

    2.大幅度使用并发技术来提高上传速度,与HttpUploader2相比速度提升4倍。

    3.前端仅负责UI显示,所有业务逻辑统一放到控件中处理。

    3.支持Chrome 45+

    clip_image002

    clip_image004

    clip_image006

    4.大幅度重复使用线程资源,使线程资源不再频繁重复创建和销毁,充分提升资源的重复使用率。

    JS更新:

    版本变化

    变化

    HttpUploader2

    HttpUploader2-2016

    代码行数

    1213

    682

    组件数

    3

    1

    浏览器加载次数

    3

    1

    上传速度

     

    提升3

    并发数

    1

    4

    稳定性

     

    提升50

    调用接口

    com

    json

    可扩展性

     

    clip_image008

     

    多平台事件统一

    ie32,ie64,firefox,chrome(npapi),chrome 45+(native message)使用相同的事件处理模型

    clip_image010

     

    优化控件初始化逻辑

    clip_image012

     

    弃用的接口:

    GetClipboardFiles

    AllowMultiSelect

    ShowDialog

    ShowFolder

    GetSelectedFiles

    CreateFolder

    RemoveFile

    ExistFile

    FileSize

    FileLength

    FileFilter

    InitDir

     

    改进的选择文件方法

    改进前

    控件返回特定类型的数组,没有提供更丰富的信息,不便于后续业务逻辑的操作

            , OpenFileDialog: function ()

            {

                _this.partIE.FileFilter = _this.Config["FileFilter"];

                _this.partIE.AllowMultiSelect = _this.Config["AllowMultiSelect"];

                _this.partIE.InitDir = _this.Config["InitDir"];

                if (!_this.partIE.ShowDialog()) return;

     

                var list = _this.partIE.GetSelectedFiles();

                if (list == null) return;

                if (list.lbound(1) == null) return;

     

                for (var index = list.lbound(1) ; index <= list.ubound(1) ; index++)

                {

                    if (!_this.Exist(list.getItem(index)))

                    {

                        _this.AddFile(list.getItem(index));

                    }

                }

                _this.PostFirst();

            }

    改进后

    控件返回JSON数据,更便于后续业务逻辑的操作

         this.part_files = function (ret)

         {

             if (ret.files == null) return;

             for (var i = 0, l = ret.files.length; i < l; ++i)

             {

                 var f = ret.files[i];//控件返回JSON数据格式,f.name,f.length,f.size,f.ext

                 this.addFileLoc(f);

             }

         };

     

    2.拖拽控件事件与Partition控件事件统一,拖拽后触发drop_files消息

    clip_image014

    消息内容与part_files相同

    clip_image016

     

  • 相关阅读:
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及应用
    实验二 K-近邻算法及应用
    实验一 感知器及其应用
    实验三 面向对象分析与设计
    实验二 结构化分析与设计
    实验一 软件开发文档与工具的安装与使用
    个人作业三-ATM管理系统
    个人作业二-举例分析流程图与活动图的区别与联系
    第一次个人作业-四则运算题目生成程序(计算机181 张博闻)
  • 原文地址:https://www.cnblogs.com/xproer/p/5260610.html
Copyright © 2011-2022 走看看