网络摄像机直播

对于网络摄像机做视频预览这块, 本身其实是非常陌生的, 当时接到这个需求也是相当的头疼(对于当时一年经验不到的我来说).当时我们的应用场景是: 多路网络摄像机通过局域网连接, PC 端能够实时预览监控画面并且画质达到720p, 延迟不能超过10秒, 多个摄像机能够切换查看. 由于后端只提供一个 RTSP 的直播协...

Babel生态

对于 babel 的使用, 一直停留在与 webpack 结合使用, 以及在 Vue 开发环境下脚手架又是开箱即用. 导致很多 babel 的包, 我都不清楚他们是干什么的. 比如 babel-register/ babel-runtime/ helpers/ 各种 presets 以及 transform-ru...

跨域

跨域这块是前后端分离必经的一条路, 这次好好整理一下关于跨域方面知识. 什么是跨域?跨域是受同源策略的影响而导致的, 指一个源下的资源试图操作另一个源下的资源. 那么, 什么又是同源策略呢?就是限制从一个源的资源如何与另一个源的资源交互, 用于隔离潜在的恶意文件, 保证文件的安全性. 所谓的同源是指: 协议/域...

Promise 分析及实现

Promise 是 ES6中中收录的异步操作封装, 通常在回调/ 事件/ 消息等异步操作中有显著的优势, 让我们在更方便的操作异步也让代码更加清晰.包括 ES7中的 Async/Await 也是对异步操作的封装, 不过 Async 更像是 Generator 的语法糖. 基础实现学习剖析 Promise 之基础篇...

《图解 HTTP》(上)

Web使用HTTP(HyperText Transfer Protocal) 超文本传输协议作为规范, 完成从客户端到服务端的一系列流程. 可以说 Web 是在 HTTP 协议上通信的. 1.0 网络基础TCP/IP通常我们使用的网络是在 TCP/IP 协议族的基础上运行的, 而 HTTP 是属于 TCP/IP ...

声明提升

在说声明提升之前, 首先应该了解三个概念性的东西, 执行上下文(Execution Context)/ 变量对象(Variable Object)和活动对象(Activation Object), 这三个概念是在 ES3 中出现的. 执行上下文(Execution Context)执行上下文也可以说是 js 代...

事件

JavaScript 和 HTML 交互是通过事件实现, 而事件处理程序订阅事件从而执行相应的操作. 事件流事件流描述的是 从页面接收事件的顺序.事件冒泡: 从最具体的元素到最不具体的元素(从内到外); — IE事件捕获: 从最不具体的元素到最具体的元素(从外到内); — NetscapeDOM 事件流: 先捕获...

Flex 弹性盒子

Flex 是 Flexible box 的缩写(弹性布局), 用来为盒模型提供最大灵活性的布局, 更为方便的实现响应式布局. 如何使用 Flex任何一个容器都可以指定为一个 Flex 布局. 12345678910111213.box { display: flex;}/* 行内元素 ...

闭包和高阶函数

这一篇笔记是为正式开始学习 javadcript 设计模式做铺垫,由于许多设计模式都用到了闭包和高阶函数来实现, 所以了解这两个知识点也是必要的. 闭包闭包简单的来说是函数与函数之间的桥梁, 让一个函数有权访问另一个函数作用域里的变量. 定义说起来还是很生涩的, 要理解闭包我们需要先知道变量的作用域以及变量的生...

base64 转 blob

12345678var arr = base64.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) &#...