Webpack插件是如何编写的——prerender-spa-plugin源码解析

2021-10-03
阅读 8 分钟
2.6k
本文主要的内容是通过之前使用的prerender-spa-plugin插件的源码阅读,来看下我们应该如何编写一个webpack的插件,同时了解下预渲染插件到底是如何实现的。

如何使用prerender-spa-plugin插件对页面进行预渲染

2021-09-29
阅读 6 分钟
7.5k
因为之前的网站是使用Vue开发的,这种前端JavaScript渲染的开发模式,对于搜索引擎来说非常的不友好,没有办法抓取到有效的信息。因此为了进行SEO,我们需要对页面进行一些预渲染。

JavaScript数字运算必备库——big.js源码解析

2020-11-29
阅读 7 分钟
9.3k
在大数运算中,由于number类型的数字长度限制,我们经常会遇到超出范围的情况。比如在我们传递Long型数据的情况下,我们就只能把它转换到字符串进行传递和处理。

正则表达式是如何让你的网页卡住的

2020-11-29
阅读 5 分钟
9.6k
正则表达式在我们日程的工作项目中,应该是一个经常用到的技能。在做一些字符的匹配和处理的过程中,发挥了很大的作用。我们这篇文章主要是通过一个我在工作中遇到的性能问题,来探究下正则表达式是如何影响我们的代码性能的。在我们遇到了正则表达式有性能平静的时候,我们应该如何的来对它进行优化?

如何实现一个虚拟 DOM——virtual-dom 源码分析

2019-03-13
阅读 12 分钟
3.3k
本文通过对virtual-dom的源码进行阅读和分析,针对Virtual DOM的结构和相关的Diff算法进行讲解,让读者能够对整个数据结构以及相关的Diff算法有一定的了解。

WebSocket 协议 RFC 文档(全中文翻译)

2019-02-20
阅读 1 分钟
10.4k
经过半年的捣鼓,终于将 WebSocket 协议(RFC6455)全篇翻译完成。现在将所有章节全部整理到一篇文章中,方便大家阅读。如果大家想看具体的翻译文档,可以去我的GitHub中查看。

【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data)

2019-02-20
阅读 1 分钟
4.6k
终端必须保证 WebSocket 连接处于 OPEN 状态(见第 4.1 节和第 4.2.2 节)。如果 WebSocket 连接的任意一端的状态发生了改变,终端必须中止以下步骤。

【译】WebSocket协议第五章——数据帧(Data Framing)

2019-02-20
阅读 9 分钟
4.5k
在WebSocket协议中,数据是通过一系列数据帧来进行传输的。为了避免由于网络中介(例如一些拦截代理)或者一些在第10.3节讨论的安全原因,客户端必须在它发送到服务器的所有帧中添加掩码(Mask)(具体细节见5.3节)。(注意:无论WebSocket协议是否使用了TLS,帧都需要添加掩码)。服务端收到没有添加掩码的数据帧以后...

【译】 WebSocket 协议第十二章——使用其他规范中的WebSocket协议

2019-02-20
阅读 1 分钟
2k
WebSocket协议旨在由另一规范使用,以提供动态作者定义内容的通用机制。例如,在定义脚本 API 的规范中定义 WebSocket 协议。

【译】 WebSocket 协议第十一章——IANA 注意事项(IANA Considerations)

2019-02-20
阅读 7 分钟
2.9k
概述 本文为 WebSocket 协议的第十一章,本文翻译的主要内容为 WebSocket 的 IANA 相关注意事项。 IANA 注意事项(协议正文) 11.1 注册新 URI 协议 11.1.1 注册 “ws” 协议 ws URI 定义了 WebSocket 服务器和资源名称。 URI 协议名称 ws 状态 永久 URI 协议语法 使用 ABNF (RFC5234)语法和来自 URI 规范 RFC3986 的 AB...

【译】 WebSocket 协议第十章——安全性考虑(Security Considerations)

2019-02-20
阅读 3 分钟
4k
WebSocket 协议防止在受信任的应用例如 Web 浏览器中执行的恶意 JavaScript 代码,例如通过检查Origin头字段(见下面)。见第 1.6 节去了解更多详情。这种假设在更有能力的客户端的情况下不成立。

【译】 WebSocket 协议第九章——扩展(Extension)

2019-02-20
阅读 2 分钟
3.7k
WebSocket 可以请求该规范中提到的扩展,WebSocket 服务端可以接受其中一些或者所有的客户端请求的扩展。服务端禁止响应客户端没有请求过的扩展。如果扩展参数需要在客户端和服务端之间进行协商,这些参数必须根据参数所应用的扩展的规范来选择。

【译】 WebSocket 协议第八章——错误处理(Error Handling)

2019-02-19
阅读 1 分钟
2.4k
当终端按照 UTF-8 的格式来解析一个字节流,但是发现这个字节流不是 UTF-8 编码,或者说不是一个有效的 UTF-8 字节流时,终端必须让 WebSocket 连接关闭。这个规则在建立连接开始握手和后续的数据交换时都生效。

【译】 WebSocket 协议第七章——关闭连接(Closing the Connection)

2019-02-19
阅读 4 分钟
9.6k
要关闭 WebSocket 连接,终端需要关闭底层的 TCP 连接。终端需要使用一个方法来干净的关闭TCP连接,还有 TLS 会话,如果可能的话,抛弃后面可能受到的任意字符。终端可能会在需要的时候,通过任何方式来关闭连接,例如在收到攻击时。

【译】 WebSocket 协议第十章——安全性考虑(Security Considerations)

2019-02-19
阅读 3 分钟
1.8k
WebSocket 协议防止在受信任的应用例如 Web 浏览器中执行的恶意 JavaScript 代码,例如通过检查Origin头字段(见下面)。见第 1.6 节去了解更多详情。这种假设在更有能力的客户端的情况下不成立。

从 IM 通信 Web SDK 来看如何提高代码可维护性与可扩展性

2019-01-25
阅读 7 分钟
2.3k
在架构设计和功能开发中,代码的可维护性和可扩展性一直是工程师不懈的追求。本文将以我工作中开发的 IM 通信服务 SDK 作为示例,和大家一起探讨下前端基础服务类业务的代码中对可维护性和可扩展方面的探索。

国际大厂 Google 安全策略——【译】BeyondCorp 一种新的企业安全方法

2019-01-22
阅读 7 分钟
6.7k
实际上每一个公司现在都使用防火墙来强制保证网络边界安全。然而,这个安全模型是存在问题的,因为,当网络边界被攻破时,攻击者可以相对简单的访问公司的内网。当公司采用移动设备和云技术时,网络边界会变得越来越难以保证。Google 正在采用一个不同的方法来保证网络安全。我们舍弃了内网的要求,而是把我们的企业应用...

ReasonML——新的前端强类型语言简介

2019-01-20
阅读 5 分钟
3.4k
从有前端到现在,JavaScript 语言一直都是实现前端逻辑的首选。但是,由于 JavaScript 是一个弱类型语言,很难进行相关的类型检测。因此在构建大型应用时,使用 JavaScript 难免会遇到一些隐式类型转换等相关的问题,从而导致程序的 bug。

【译】WebSocket协议第五章——数据帧(Data Framing)

2019-01-07
阅读 9 分钟
4k
概述 本文为WebSocket协议的第五章,本文翻译的主要内容为WebSocket传输的数据相关内容。 有兴趣了解该文档之前几张内容的同学可以见: 【译】WebSocket协议第一章——介绍(Introduction) 【译】WebSocket协议第二章——一致性要求(Conformance Requirements) 【译】WebSocket协议第三章——WebSocket网址(WebSocket URIs) 【...

Promise进阶——如何实现一个Promise库

2019-01-02
阅读 14 分钟
1.9k
从上次更新Promise/A+规范后,已经很久没有更新博客了。之前由于业务需要,完成了一个TypeScript语言的Promise库。这次我们来和大家一步一步介绍下,我们如何实现一个符合Promise/A+规范的Promise库。

《OKR工作法》读书笔记

2018-11-21
阅读 2 分钟
3.1k
OKR(Objectives and Key Results)即目标与关键成果法,是一套明确和跟踪目标及其完成情况的管理工具和方法,由英特尔公司发明。

小而美的Promise库——promiz源码浅析

2018-11-01
阅读 7 分钟
2.6k
在上一篇博客[[译]前端基础知识储备——Promise/A+规范]([链接],我们介绍了Promise/A+规范的具体条目。在本文中,我们来选择了promiz,让大家来看下一个具体的Promise库的内部代码是如何运作的。

《团队的秘密——如何打造高绩效的卓越团队》读书笔记

2018-10-07
阅读 1 分钟
2.6k
背景 挑战:复杂性、竞争性、客户期望以及领导力 任务:帮助团队领导者把团队带到更高层次 高绩效团队 方法 把正确的人带进团队 帮助他们成长 创造彼此关爱、真诚相待的环境 因素 人才:选拔,适合人才,找到正确人选 技能:训练、培训、好的流程、帮助人们成长 社区:共度人生、家庭、团队精神、互相关心的环境 调整 动...

【译】前端知识储备——Promise/A+规范

2018-09-15
阅读 4 分钟
2k
在面试别人的过程中,发现基本上没有人对整个Promise完全了解,因此希望通过这篇文章来帮助大家了解下Promise的全貌。本文的主要内容是Promise/A+规范的译文,主要是能够帮助大家了解下Promise的规范,以及解决在日常运用中遇到的一些问题。

正则表达式高级进阶

2018-07-24
阅读 3 分钟
4.4k
本文主要通过介绍正则表达式中的一些进阶内容,让读者了解正则表达式在日常使用中用到的比较少但是又比较重要的一部分内容,从而让大家对正则表达式有一个更加深刻的认识。

正则表达式语法入门

2018-07-24
阅读 4 分钟
3.2k
本文主要通过对正则表达式的语法进行一些简单的介绍,从而让没有接触过或者想学习正则表达式的同学有一个基础的了解,从而能够看懂和编写使用一般的正则表达式。

【译】WebSocket协议第四章——连接握手(Opening Handshake)

2018-07-24
阅读 10 分钟
9.9k
本文为WebSocket协议的第四章,本文翻译的主要内容为WebSocket建立连接开始握手的内容,主要包含了客户端和服务端握手的内容,以及双方如何处理相关字段和逻辑。

【译】WebSocket协议第三章——WebSocket网址(WebSocket URIs)

2018-07-24
阅读 1 分钟
4.1k
概述 本文为WebSocket协议的第三章,本文翻译的主要内容为WebSocket连接的相关URI地址介绍。 WebSocket URIs(第三章协议正文) 这个规范使用在RFC5234中的ABNF语法以及URI规范中的RFC3986的术语和ABNF产品定义了两套方案。 {代码...} 端口字段是可选的,默认的"ws"端口是80,而默认的"wss"端口是443。 命中不论大小写的...

【译】WebSocket协议第二章——一致性要求(Conformance Requirements)

2018-07-24
阅读 1 分钟
3.2k
在这篇文档中的关键词如“必须(MUST)”、“必须不(MUST NOT)”、“需要(RWQUIRE)”、“应该(SHALL)”、“不应该(SHALL NOT)”、“应该(SHOULD)”、“不应该(SHOULD NOT)”、“推荐(RECOMMENDED)”、“也许(MAY)”和“可选(OPTIONAL)”可以按照[RFC2119]([链接]。

【译】WebSocket协议第一章——介绍(Introduction)

2018-07-24
阅读 5 分钟
7.6k
本文为WebSocket协议的第一章,本文翻译的主要内容为针对整个WebSocket进行一个简单而又全面的介绍。通过这篇文章我们能够对WebSocket有一个整体的大致了解。