HttpUploader2-queue版本
1.1 2016版本
目标:
1.大幅度优化JS代码,面向开发人员更加友好,逻辑清晰,代码简洁,便于阅读,定制开发,扩展,更加符合企业级应用需求。
2.大幅度使用并发技术来提高上传速度,与HttpUploader2相比速度提升4倍。
3.前端仅负责UI显示,所有业务逻辑统一放到控件中处理。
3.支持Chrome 45+。



4.大幅度重复使用线程资源,使线程资源不再频繁重复创建和销毁,充分提升资源的重复使用率。
JS更新:
版本变化
|
变化 |
HttpUploader2 |
HttpUploader2-2016 |
|
代码行数 |
1213 |
682 |
|
组件数 |
3 |
1 |
|
浏览器加载次数 |
3 |
1 |
|
上传速度 |
|
提升3倍 |
|
并发数 |
1 |
4 |
|
稳定性 |
|
提升50 |
|
调用接口 |
com |
json |
|
可扩展性 |
|
|
多平台事件统一
ie32,ie64,firefox,chrome(npapi),chrome 45+(native message)使用相同的事件处理模型

优化控件初始化逻辑

弃用的接口:
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消息

消息内容与part_files相同

HttpUploader2-queue版本的更多相关文章
- STORM在线业务实践-集群空闲CPU飙高问题排查
源:http://daiwa.ninja/index.php/2015/07/18/storm-cpu-overload/ 2015-07-18AUTHORDAIWA STORM在线业务实践-集群空闲 ...
- STORM在线业务实践-集群空闲CPU飙高问题排查(转)
最近将公司的在线业务迁移到Storm集群上,上线后遇到低峰期CPU耗费严重的情况.在解决问题的过程中深入了解了storm的内部实现原理,并且解决了一个storm0.9-0.10版本一直存在的严重bug ...
- Python multiprocess模块(中)
主要内容: 一. 锁 二. 信号量 三. 事件 通过event来完成红绿灯模型 四. 队列(重点) 队列实现进程间的通信 五. 生产者消费者模型 1. 初始版本(程序会阻塞住) 2. 升级版本一(通过 ...
- Java并发(基础知识)—— 阻塞队列和生产者消费者模式
1.阻塞队列 Blocki ...
- [Swift]队列Queue的两种版本:(1)用类包装Queue (2)用泛型包装Queue
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的 ...
- aodh M版本新特性 - queue between alarm evaluator and alarm notifier
之前alarm evaluator service and alarm notifier services之间的通信采用RPC的方式,消耗较大,增加work queue的方式可以获得更好的性能, + ...
- java集合类深入分析之Queue篇
简介 Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约.实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现 ...
- RabbitMQ Lazy Queue 延迟加载
Lazy Queue 在著名的单例设计模式中就有懒汉式的实现方式,也就是只有在你需要的时候我才去加载. 这让博主想到了以前上学的时候,每到了假期的假期作业,在假期的时候是从来不做的.只有在快开学老师要 ...
- Java多线程总结之线程安全队列Queue
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列.Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非 ...
- 数据结构《21》----2014 WAP 初试题----Immutable queue
2014 WAP初试题----实现一个不可变的队列: 看似很简单..实则,不同的版本效率的差距可能是巨大的..甚至难以想象.. 之前用STL库的queue进行了对比,差别非常大.. 用上一篇文章的im ...
随机推荐
- php网站环境无法上传的解决办法?
一. 检查网站目录的权限.二. php.ini配置文件php.ini中影响上传的有以下几处:file_uploads 是否开启 on 必须开启是否允许HTTP文件上传post_max_size = 8 ...
- node的socket.io的广播消息
在多个客户端与服务器端建立连接后,socket.io()服务器具有一个sockets属性,属性值为所有与客户端建立连接的socket对象.可以利用该对象的send方法或emit方法向所有客户端广播消息 ...
- python学习笔记(八):异常处理
一.异常处理 在程序运行过程中,总会遇到各种各样的错误.程序一出错就停止运行了,那我们不能让程序停止运行吧,这时候就需要捕捉异常了,通过捕捉到的异常,我们再去做对应的处理. 下面我们先写一个函数,实现 ...
- 各自平台token获取解析及用户信息的获取
1.auth根据手机号码获取auth平台session_token记统一认证的user_id与pass_id [dwliuchao1@GD-QHD-CNG152TFKX-12.55 logs]$ cd ...
- HTTPS的页面发送不了HTTP请求?——关于混合内容
我们都知道HTTPS的页面是发送不了HTTP请求的,那么是什么原因导致HTTPS页面不能发送HTTP请求呢?如果有发送的需求,怎么样才能发送?最近刚好遇到了这个问题,而且搜了半天没搜到靠谱的答案,所以 ...
- Hp培训学习注册攻略
输入h20507.www2.hp.com/Saba/Web/Main用以注册的Hp partner portnal账户登入,
- Service通信的两篇博文
普通Service http://blog.csdn.net/liuhe688/article/details/6874378 AIDL通信 http://blog.csdn.net/liuhe688 ...
- 使用COM口的2、3针的通断作为中端源(有一个读图像的摄像头,当把卡插到位时触发中端,防止在插卡的过程中出现不稳定的图像)
利用串口2读,串口3发数据的特点.建立不断的发送流,再从接收端接收.如果收到,则数据畅通,否则断开.相当于产生一个中断.这样电脑对外部事件可作出反应. using System;using Syste ...
- sql常用优化
最近因工作需要,查找资料整理了一下sql的常见优化,具体如下: 1.尽量避免全表扫描,一般在where或order by 涉及的列上建立索引: 2.尽量避免在where子句中对索引字段进行null值判 ...
- What is _MainTex_ST ?
[What is _MainTex_ST ?] 在Unity自带的Unlit/Texture中,有引用到float4 _MainTex_ST,如下: // Unlit shader. Simplest ...
