Theia 技术揭秘之 JSON-RPC 通信

2021-03-05
阅读 18 分钟
5.4k
实现了双向通信的统一接口,对比 cyrus-and/chrome-remote-interface 使用协议定义文件自动生成 Chrome Debugging Protocol 接口,两种实现方式,各有千秋。还可以参考 VSCode 的 Language server protocol Node 实现 microsoft/vscode-languageserver-node,里面包含了 RPC 的 IPC 版本 vscode-jsonrpcTheia 的 WebSock...
封面图

Theia 技术揭秘之布局系统

2020-12-08
阅读 16 分钟
6.2k
基于 PhosphorJS 可以实现 桌面端/Web 端统一实现类桌面的交互了解 PhosphorJS 的核心组件 Widget 的接口和实现了解 Theia 是如何基于 PhosphorJS 在 ApplicationShell 中进行页面组装的了解 Theia 前端界面是如何通过 FrontendApplication.start() 构建的了解 React 与 PhosphorJS 混写方法Theia 框架前端 UI 布局和 Se...

13 个示例快速入门 JS 抽象语法树

2018-07-17
阅读 9 分钟
11.3k
随着 Babel 的生态越来越完善,我们通常会使用 Babel 来帮助我们分析代码的解析过程。Babel 使用一个基于 ESTree 并修改过的 AST,它的内核说明文档可以在 这里. com/babel/babel/blob/master/doc/ast/spec. md) 找到。

前端进阶之 Javascript 抽象语法树

2018-07-16
阅读 13 分钟
9.7k
Babel 是 JavaScript 编译器 compiler,更确切地说是源码到源码的编译器,通常也叫做 转换编译器(transpiler)。 意思是说你为 Babel 提供一些 JavaScript 代码,Babel 更改这些代码,然后返回给你新生成的代码。

不知道层叠,别说你懂CSS

2018-02-28
阅读 3 分钟
2.7k
在实际的工作中,我们可能还有些疑惑,当有多个选择器作用在一个元素上时,哪个规则最终会应用到元素上?其实这是通过层叠机制来控制的,这也和样式继承(元素从其父元素那里获得属性值)有关。

web性能优化——关键渲染路径(上)

2017-08-06
阅读 10 分钟
5k
从收到 HTML、CSS 和 JavaScript 字节到对其进行必需的处理,从而将它们转变成渲染的像素这一过程中有一些中间步骤,优化性能其实就是了解这些步骤中发生了什么, 即关键渲染路径。优化关键渲染路径是指优先显示与当前用户操作有关的内容。

web性能优化——优化内容

2017-08-06
阅读 10 分钟
6.2k
与桌面应用不同,网络应用不需要单独的安装过程:只需输入网址,便可启动和运行 - 这是网络的一个关键特色。不过,要做到这一步,我们通常需要获取几十个(有时甚至是几百个)不同的资源,所有这些资源加起来的数据量高达几兆字节,并且必须在短短几百毫秒内汇聚起来,以实现我们想要达到的即时网络体验。

web性能优化——使用RAIL模型评估性能

2017-08-05
阅读 2 分钟
7.7k
RAIL 简介 RAIL 是一种以用户为中心的性能模型。每个网络应用均具有与其生命周期有关的四个不同方面,且这些方面以不同的方式影响着性能: RAIL核心思想是以用户为中心;最终目标不是让您的网站在任何特定设备上都能运行很快,而是使用户满意。主要包含以下几个方面: 立即响应用户;在 100 毫秒以内确认用户输入。 设置...