HUANG QING BLOG

天行健,君子以自强不息。地势坤,君子以厚德载物。

FileReader

介绍 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。 其中File对象可以是来自用户在一个<input>元素上选择文件后返回的FileList对象,也可以来自拖放操作生成的 DataTransfer对象,还可以是来自在一个HTMLCanvasElement上执行...

CSS Transition

过渡

transition CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。 要实现这一点,必须规定两项内容: 规定您希望把效果添加到哪个 CSS 属性上 规定效果的时长 语法: transition: property duration timing-function delay; 属性: 值 描述 ...

Clipboard API and events

IE IE浏览器支持直接读写剪切板内容: window.clipboardData.clearData(); window.clipboardData.setData('Text', 'abcd'); window.clipboardData.getData('Text'); 但是这种方式不安全,很容易泄露用户的隐私,所以现在浏览器如chrome都不支持这种方式了。 1.IE下,...

file upload

大文件上传

整体思路 前端: 核心是利用 Blob.prototype.slice 方法返回原文件的某个切片。 根据预先设置好的切片最大数量将文件切分为一个个切片,然后借助 http 的可并发性,同时上传多个切片,这样从原本传一个大文件,变成了同时传多个小的文件切片,可以大大减少上传时间。 由于是并发,传输到服务端的顺序可能会发生变化,所以还需要给每个切片记录顺序。 服务端: ...

file

HTML DOM FileUpload 对象

File API 接口总览: ◆ FileList接口: 可以用来代表一组文件的JS对象,比如用户通过input[type="file"]元素选中的本地文件列表 ◆ Blob接口: 用来代表一段二进制数据,并且允许我们通过JS对其数据以字节为单位进行“切割” ◆ File接口: 用来代表一个文件,是从Blob接口继承而来的,并在此基础上增加了诸如文件名、MIME类型之类的特性 Fil...

HTML5 WebSocket

概述 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮...

JWT

JSON WEB TOKEN

什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也...

Cookie、Session、Token、JWT

概念 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己” 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人 什么是授权(Authorization) 用户授予第三方应用访问该用户某些资源的权限 你在安装手机应用的时候,APP 会询问是否允许授予权限(...

Server Worker

Service Worker 是什么? service worker 是独立于当前页面的一段运行在浏览器后台进程里的脚本。 service worker不需要用户打开 web 页面,也不需要其他交互,异步地运行在一个完全独立的上下文环境,不会对主线程造成阻塞。基于service worker可以实现消息推送,静默更新以及地理围栏等服务。 service worker提供一种渐进增强的特...

Web Worker

概述 Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给主线程。这样的好处是,一些计算密集型或高延迟的任务,被 Worker 线程负担了,主线程(通常负责 UI 交互)就会很流畅,不会被阻...