OT算法在协同编辑中的应用

2021-06-19
阅读 4 分钟
7.7k
疫情的原因推进了在线面试的应用场景,除了音视频通话技术,对于IT行业的面试,必不可少的要写写代码,所以其中一项重要功能是协同编辑,下面就让来分析一下协同编辑功能的实现方案和OT算法的应用。

一文搞懂Babel配置

2020-11-30
阅读 7 分钟
7.2k
Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。

xgplayer中的知识点

2020-10-20
阅读 3 分钟
6k
首先我们来看一下xgplayer播放器在页面上的dom结构这些以xg-开始的元素不是HTML的标准元素,第一眼看到的话,以为是webcomponent的自定义元素,比如下面这样来实现:

flv.js系列三:FLV格式解析

2020-10-19
阅读 4 分钟
4.5k
FLV是Flash Video的简称,是Adobe公司推出的流媒体文件格式,我们下面对数据的操作都基于FLV规范文档。整体结构如下图所示,由FLVHeader和FLVBody组成。

flv.js系列二:网速计算与数据缓存

2020-10-03
阅读 11 分钟
5.2k
在音视频播放的场景中,用户的网速是影响体验的重要因素,播放器在播放的过程中,可以计算单位时间获取的数据量来衡量网速。flv.js的实例提供了statistics_info事件获取当前的网速。

flv.js源码知识点(上)

2020-09-14
阅读 6 分钟
7.1k
flv.js是一款优秀的开源web端flv文件播放器,flv格式目前广泛应用在直播及音视频录制领域。今天我们首先讲解flv.js播放文件的整体流程及数据获取部分的知识点,我会在之后的文章中继续讲解flv.js中解析flv数据格式的部分。

如何优化成千上万行SDK代码

2020-08-24
阅读 4 分钟
1.6k
看源码最重要的就是能够调试,播放器的源码是运行在浏览器端的,所以我们可以直接用浏览器进行调试,node上的源码如何调试我后续再发一篇文章讲解。

页面跳转与浏览器记录

2017-09-01
阅读 2 分钟
6.8k
在页面加载的时候直接location.href 到其他的页面,会在浏览器里不留下当前页面的记录,试验用 setTimeout 0秒后再location.href 到其他的页面则会留下记录。所以再做页面跳转的时候如果不想留下记录,还是用replace比较保险,如果想留下记录,应该setTimeout几百毫秒再跳转。

Redux and Vuex 源码分析

2017-07-22
阅读 45 分钟
2.7k
第一,是SPA,如果不是SPA,多页面之间也就不存在复杂的交互,每打开一个页面代表新的生命周期,页面之间的交互可以利用window对象和URL参数,当然也存在一个页面的组件之间有复杂的交互,但是Redux和Vuex确实是更适用于SPA的场景,页面作为组件,页面之间可以共同管理数据状态,更像是一个应用,Redux和Vuex管理着这个...

简单搭建后台管理系统布局

2017-05-10
阅读 2 分钟
6.1k
写这个demo需要考虑的几个问题1 如果不给html和body设样式他们的高度是什么样的,结果发现他们是没有高度的和普通div一样。所以应该把html和body的高度设置成100%

中间件的实现对比

2017-05-09
阅读 7 分钟
2.5k
中间件的实现对比我们在很多地方都用到了中间件的概念,我理解的中间件就是代码执行过程中插入一些中间过程。1 redux中的中间件就是普通函数的中间件,函数的嵌套执行 {代码...} 模拟这个过程 {代码...} 模拟直接的中间件过程,express的中间件类似这个原理 {代码...} 2 koa2的中间件koa2中的中间件是async函数 {代码...}...

浅谈Http模块,Express和Koa实现http服务

2017-04-26
阅读 5 分钟
6.4k
利用node直接实现服务器是运用http模块,Express和Koa都是在其上做的封装,这篇wiki只是想直观的看看封装前后基本使用上的不同,先不去考虑深入的东西。

移动端自适应方案

2017-03-21
阅读 4 分钟
4.5k
首先是看几篇文章,了解viewport scale dpr 图片的显示精度问题 一像素显示问题, 缩放导致的像素适应问题 移动端的自适应问题[链接]

webpackCommonChunk最佳配置

2017-02-10
阅读 3 分钟
5.1k
webpack.optimize.CommonsChunkPlugin插件用于抽取模块中的复用部分,以减少打包的代码量,我们还需要考虑到缓存的优化

彻底理解Javascript中的this

2016-12-24
阅读 5 分钟
2.2k
2 直接调用函数中的this在非严格的模式下,this的值默认为全局对象,window或者global。在严格模式下,this的值为undefined。

彻底理解Javascript中的原型链与继承

2016-12-24
阅读 4 分钟
2k
JavaScript语言不像面向对象的编程语言中有类的概念,所以也就没有类之间直接的继承,JavaScript中只有对象,使用函数模拟类,基于对象之间的原型链来实现继承关系,ES6的语法中新增了class关键字,但也只是语法糖,内部还是通过函数和原型链来对类和继承进行实现。

我来给Javascript中的闭包下个定义

2016-12-24
阅读 3 分钟
1.8k
那么闭包函数的特点在哪里,我们知道函数在创建的时候,它的[[scope]]属性就已经确定并不可以改变,所以闭包函数在创建的时候就保存了上级的作用域链,闭包函数通过作用域链去寻找使用到的变量,正常情况下,函数在执行完毕后,将销毁函数的执行上下文,但是由于闭包函数的存在,包含闭包函数的上级函数执行完毕后,如果...

彻底理解Javascript中的作用域链

2016-12-24
阅读 3 分钟
2.1k
让我们看一下和作用域相关的上下文结构VO是当前上下文的变量对象,重点是Scope属性,Scope = VO+[[scope]]。其中[[scope]]为所有父上下文变量对象的链表。

彻底理解Javascript中的变量对象

2016-12-24
阅读 3 分钟
3.8k
如果变量与执行上下文相关,那变量自己应该知道它的数据存储在哪里,并且知道如何访问。这种机制称为变量对象(variable object)。变量对象(缩写为VO)是一个与执行上下文相关的特殊对象,它存储着在上下文中声明的以下内容:

彻底理解Javascript中的全局上下文

2016-12-24
阅读 1 分钟
3k
每次当控制器转到ECMAScript可执行代码的时候,即会进入到一个执行上下文。执行上下文(简称-EC)是ECMA-262标准里的一个抽象概念,用于同可执行代码(executable code)概念进行区分。

JS 中的类型判断

2016-11-13
阅读 3 分钟
2.2k
null、Object、Number、String、Boolean、Function、Array、Date、RegExp、Error、Arguments

Redux系列源码解读

2016-11-08
阅读 12 分钟
2.1k
用于分解state树,每一个reducer对应state的一个key对应的子state。比如poi的reducer对应的就是state[poi]。这样在将state传递给props时利于分解。

Redux 入门

2016-10-31
阅读 3 分钟
2.1k
单页面应用,顾名思义,和传统项目的最明显区别就是项目只有一个页面,页面有一个根元素,我们写的每一个页面是一个大的组件,前端接管路由来渲染不同的页面组件。

JS测试与接入CI指南

2016-10-31
阅读 1 分钟
3.5k
js代码自动化的测试有什么好处?1、开发者在写测试脚本的时候,能够更好的理解代码的的功能,返回值等等。2、能够实现准确直接的测试,并立即看到测试结果,进行调整。3、面对复杂的项目,对代码的修改有可能会牵一发动全身,代码的改动可能会影响到其他部分的功能,自动化测试能帮我们整体检查一遍。4、测试的结果能够...

React Native 中切换TextInput保持键盘展开

2016-10-31
阅读 3 分钟
10k
由于手机屏幕高度不定,做表单页面时,外层通常加上ScrollView组件,使其能够适应屏幕进行滚动。业务需要里面放置多个TextInput组件。

React 组件之间的通信方式

2016-10-31
阅读 3 分钟
2.5k
在项目开发的过程中,随着应用功能复杂度的增加和组件层次划分的需求,组件之间的通信越来越多,我大致认为组件之间的通信分为3种:父-子组件通信、子-父组件通信和同级组件之间的通信。

React的生命周期与应用

2016-10-31
阅读 6 分钟
3.1k
目录1.react组件的两种创建写法2.组件的生命周期在不同状态下的执行顺序3.组件各生命周期的应用1.react组件的两种创建写法第一种ES5写法,React.createClass {代码...} 第二种是ES6写法,继承React.Component类 {代码...} getDefaultProps、getInitialState是在createClass时调用的方法,而在继承component类时,getDefa...