stream 上传插件 java_Stream上传插件(js设计)

1、概述

javascript是一种弱类型的语言,变量在运行的过程中可能从一种类型转变成另外一种类型,所以编码规范就非常重要了(stream.js主要参考网易的js命名规则:http://blog.jobbole.com/19197/)。javascript也是具有OOP的思想(继承,对象等,但接口就基本没有),可以方便地调用不同对象。

2、对象间关系

主要有Parent、fRegEvents、Provider(接口)、StreamProvider、SWFProvider、Uploader(接口)、StreamUploader、SWFUploader。大致关系如下:

47beb69a1129172ccaca855d2cf4c405.png

3、工作流程

初始化的方式如下:

var cfg = {

multipleFiles: true

};

var m = new Main(cfg);

现在来 解析new Main(cfg)过程:

_________________

| new Main(cfg) |

-----------------

|

V

1. Main.set() # 把cfg的参数保存到环境中

|

V

2. Main.initialzer()

|

|----> a) 生成文件选择容器(此处可以满足自定义文件选择按钮的样式)

|

|----> b) 生成文件上传的容器

|

|----> c) new Provider() # 绑定不同的文件选择UI(注:这个在页面中是隐藏的)

| # 注册文件选择的事件(注:HTML5的drag事件也是在此注册)

|----> d) 绑定Provider的上传事件到Main的监听函数

|

|----> e) 注册window的unload事件

V

3. Main.fileSelect() # 响应文件选择后的onfileselect事件

|

|----> *) 校验文件(文件数量、扩展名、大小等)

V

4. Main.addStreamTask() # 添加文件到上传容器

|

V

5. Main.upload()

|

|----> a) 调用服务器的`/tk`,获取文件token

|

|----> b) 待a)成功返回后,开始上传文件

V

6. Provider.upload()

| # 监听Uploader的上传事件(onuploadstart, onuploadprogress等)

V

7. Uploader.startUpload() # 监听自身上传事件,然后向上发`uploadstart`等事件

|

V

8. Provider接收监听事件

|

V

9. Main接收监听事件 # 注:接收到事件后,会响应,比如上传百分比,上传完成,错误信息等

|

V

10. Main接收到uploadcomplete事件后

|

|----> a) 移除`删除`按钮

|

|----> b) 重复步骤5),开始上传下一个文件

...

|

V

11. 上传结束

最后,附上一张调用关系图:

d5dd6ccf91bbf05f1b9199c807c10dd4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值