SF
归隐山中人
归隐山中人
注册登录
关注博客
注册登录
主页
关于
RSS
自定义元素探秘及构建可复用组件最佳实践
Troland
2019-03-01
阅读 11 分钟
2.4k
在 前述文章中,我们介绍了 Shadow DOM 接口和一些其它概念,而这些都是网页组件的组成部分。网页组件背后的思想即通过创建颗粒化,模块化和可复用的元素来扩展 HTML 内置功能。这是一个已经被所有主流浏览器兼容的相对崭新的 W3C 标准且可以被用在生产环境之中,虽然不兼容的浏览器需要使用垫片库(将在随后的章节中进行...
WebRTC 及点对点网络通信机制
Troland
2019-03-01
阅读 7 分钟
4.1k
WebRTC 填补了网页开发平台中的一个重要空白。在以往,只有诸如桌面聊天程序这样的 P2P 技术才能够实现实时通讯而网页不行。但是 WebRTC 的出现改变了这一状况。
Shadow DOM 内部构造及如何构建独立组件
Troland
2019-03-01
阅读 9 分钟
2.2k
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 这是 JavaScript 工作原理的第十七章。 概述 网页组件指的是允许开发者使用一系列不同的技术来创建可复用的自定义元素,组件内的功能不影响其它代码,以便于开发者在网页程序中使用。 有四种网页组件标准: Shadow DOM HTML 模板 自...
存储引擎及如何选择合适的存储 API
Troland
2019-01-01
阅读 7 分钟
2k
每当设计网页程序的时候,为本地设备选择合适的存储机制尤为重要。一个好的存储引擎可以帮助开发人员有效地存储数据,减少传输带宽及提高程序的响应速度。正确的存储缓存策略是构建移动端离线网页体验的核心组成部分,越来越多的用户想当然以为可以离线使用移动端网页程序。
JavaScript 工作原理之十五-类和继承及 Babel 和 TypeScript 代码转换探秘
Troland
2018-07-22
阅读 6 分钟
2.2k
如今使用类来组织各种软件工程代码是最常用的方法。本章将会探索实现 JavaScript 类的不同方法及如何构建类继承。我们将深入理解原型继承及分析使用流行的类库模拟实现基于类继承的方法。接下来,将会介绍如何使用转换器为语言添加非原生支持的语法功能和如何在 Babel 和 TypeScript 中运用以支持 ECMAScript 2015 类。...
JavaScript 工作原理之十四-解析,语法抽象树及最小化解析时间的 5 条小技巧
Troland
2018-07-15
阅读 7 分钟
4.3k
我们都知道运行一大段 JavaScript 代码性能会变得很糟糕。代码不仅仅需要在网络中传输而且还需要解析,编译为字节码,最后运行。之前的文章讨论了诸如 JS 引擎,运行时及调用栈,还有为 Google Chrome 和 NodeJS 广泛使用的 V8 引擎的话题。它们都在整个 JavaScript 的运行过程中扮演着重要的角色。
JavaScript 工作原理之十三-CSS 和 JS 动画底层原理及如何优化其性能
Troland
2018-07-02
阅读 7 分钟
3k
正如你所知,动画在创建令人叹服的网络应用中扮演着一个关键角色。由于用户越来越注重用户体验,商户开始意识到完美,令人愉悦的用户体验的重要性,结果网络应用变得越来越重并且拥有更多动态交互的功能。这就要求网络应用提供更加复杂的动画来实现平滑的状态过渡贯穿于用户的使用过程当中。现在,这已经司空见惯。用户...
JavaScript 工作原理之十二-网络层探秘及如何提高其性能和安全性
Troland
2018-06-25
阅读 5 分钟
2k
正如在之前关于渲染引擎的文章中所讲的那样,我们相信好的和伟大的 JavaScript 开发者之间的差别在于后者不仅仅只是理解了语言的具体细节还了解其内部构造和运行环境。
JavaScript 工作原理之十一-渲染引擎及性能优化小技巧
Troland
2018-06-19
阅读 7 分钟
2.7k
迄今为止,之前的 JavaScript 工作原理系列文章集中于关注 JavaScript 语言本身的功能,在浏览器中的执行情况,如何优化等等。
JavaScript 工作原理之十-使用 MutationObserver 监测 DOM 变化
Troland
2018-06-07
阅读 4 分钟
8.1k
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第十章。 网络应用在客户端日益复杂,这是由很多因素的造成的,比如需要更加丰富的界面交互以提供更加复杂的应用功能,实时计算等等。 网络应用的日益复杂导...
JavaScript 工作原理之九-网页消息推送通知机制
Troland
2018-05-31
阅读 6 分钟
6.7k
现在让我们把注意力转移到网页推送通知:我们将会查看其构造,探索发送/接收通知背后的过程以及最后分享一下我们在 SessionStack 是如何计划利用这些功能来创建新的产品功能的。
JavaScript 工作原理之八-Service Workers,生命周期及其使用场景
Troland
2018-05-28
阅读 6 分钟
4.8k
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第八章。 或许你已经了解到渐进式网络应用将只会越来越流行,因为它旨在创造拥有更加流畅的用户体验的网络应用和创建类 App 的原生应用体验而非浏览器端那样...
JavaScript 工作原理之七-Web Workers 分类及 5 个使用场景
Troland
2018-05-21
阅读 10 分钟
11.7k
现在,我们将会剖析 Web Workers:我们将会综合比较不同类型的 workers,如何组合运用他们的构建模块来进行开发以及不同场景下各自的优缺点。最后,我们将会介绍 5 个 Web Workder 的使用场景。
JavaScript 工作原理之一-引擎,运行时,调用堆栈(译)
Troland
2018-05-19
阅读 3 分钟
3.3k
原文请查阅这里,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第一章。本章会对语言引擎,运行时,调用栈做一个概述。 随着 JavaScript 越来越流行,团队也利用其在他们诸如前端,后端,混合 apps,嵌入设备以及更多设备等开发栈中...
JavaScript 工作原理之六-WebAssembly 对比 JavaScript 及其使用场景
Troland
2018-05-16
阅读 5 分钟
5.2k
现在,我们将会剖析 WebAssembly 的工作原理,而最重要的是它和 JavaScript 在性能方面的比对:加载时间,执行速度,垃圾回收,内存使用,平台 API 访问,调试,多线程以及可移植性。
JavaScript 工作原理之五-深入理解 WebSockets 和带有 SSE 机制的HTTP/2 以及正确的使用姿势(译)
Troland
2018-05-11
阅读 9 分钟
2.7k
现在,我们将会深入通信协议的世界,绘制并讨论它们的特点和内部构造。我们将会给出一份 WebSockets 和 HTTP/2 的快速比较 。在文末,我们将会分享如何正确地选择网络协议的一些见解。
JavaScript 工作原理之四-事件循环及异步编程的出现和 5 种更好的 async/await 编程方式(译)
Troland
2018-05-10
阅读 15 分钟
2.7k
现在,我们将会通过回顾单线程环境下编程的弊端及如何克服这些困难以创建令人惊叹的 JavaScript 交互界面来展开第一篇文章。老规矩,我们将会在本章末尾分享 5 条利用 async/await 编写更简洁代码的小技巧。
JavaScript 工作原理之三-内存管理及如何处理 4 类常见的内存泄漏问题(译)
Troland
2018-05-09
阅读 11 分钟
3k
我们将会讨论日常使用中另一个被开发者越来越忽略的重要话题,这都是日益成熟和复杂的编程语言的锅,即内存管理问题。我们将会提供在创建 SessionStack 的时候所遵循的处理 JavaScript 内存泄漏的几条小技巧,因为我们需要保证 SessionStack 不会引起内存泄漏或者不会增加我们所集成的 web 应用程序的内存消耗。
JavaScript 工作原理之二-如何在 V8 引擎中书写最优代码的 5 条小技巧(译)
Troland
2018-05-08
阅读 6 分钟
2.9k
本章将会深入谷歌 V8 引擎的内部结构。我们也会为如何书写更好的 JavaScript 代码提供几条小技巧-SessionStack 开发小组在构建产品的时候所遵循的最佳实践。
JavaScript 工作原理之一-引擎,运行时,调用堆栈(译)
Troland
2018-05-07
阅读 3 分钟
2.3k
原文请查阅这里,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第一章。本章会对语言引擎,运行时,调用栈做一个概述。 随着 JavaScript 越来越流行,团队也利用其在他们诸如前端,后端,混合 apps,嵌入设备以及更多设备等开发栈中...