加入 Web 开发社区本身就是一个挑战,尤其是当你访问的所有资源都预设你已经熟悉那些你不了解的技术时。
我们的目标是帮助你避开这些混乱,并尽可能快地跟上进度;你可以把我们当作你在互联网上的朋友。
CDN
内容分发网络
这通常是一项付费服务,你可以使用它来获得出色的应用性能。许多 CDN 充当源服务器的缓存代理;有些则要求你将资源上传给它们。它们为你的应用中的每个资源提供一个 URL。根据用户浏览位置的不同,此 URL 的解析结果也会不同。
在后台,CDN 会在地理上分布你的内容,目标是让最终用户能以最低的延迟获取你的内容。例如,如果用户在印度,他们从印度获取内容的速度通常会比从美国获取更快。
CoffeeScript, TypeScript
这两种语言都是编译为 JavaScript 的语言。你可以使用它们提供的语法编写代码,准备好后,将 TypeScript 或 CoffeeScript 编译为 JavaScript。
CRUD
创建 (Create)、读取 (Read)、更新 (Update) 和销毁 (Destroy)
这是可以对服务器上的数据进行的更改。Ember 数据适配器定义了这些对服务器的请求是什么样子的。
Evergreen browsers (常青浏览器)
自动更新(无需用户干预)的浏览器。
ES3, ES5, ES5.1, ES6 (又称 ES2015) 等
ES 代表 ECMAScript,这是 JavaScript 基于的规范。后面的数字是规范的版本号。
大多数浏览器至少支持 ES5,有些甚至支持 ES6(也称为 ES2015)。你可以在此处检查每个浏览器的支持情况(包括你使用的浏览器)
LESS, Sass
LESS 和 Sass 都是 CSS 预处理器标记语言,旨在让你更好地控制 CSS。在构建过程中,LESS 或 Sass 资源会编译成原生 CSS(可以在浏览器中执行)。
Linter, linting (代码检查工具/代码检查)
一种检查 JavaScript 中常见问题的验证工具。你通常会在构建过程中使用它来强制提高代码库的质量。一个很好的检查示例:确保你始终写了分号。
Polyfill (垫片)
这是一个通常指提供 JavaScript 的概念,用于测试缺失的功能(原型未定义等),并通过提供实现来“填充”它们。
Promise (承诺/期约)
异步调用通常会返回一个 promise(或 deferred)。这是一个具有状态的对象:可以为它提供兑现 (fulfilled) 或拒绝 (rejected) 时的处理程序。
Ember 在路由的 model 钩子等地方使用了这些。在 promise 解析之前,Ember 能够将路由置于“加载”状态。
SSR
服务端渲染
Transpile (转译)
当涉及到 JavaScript 时,这可以是构建过程的一部分,它会将你的 ES6 语法 JavaScript “转译”(转换)为当前浏览器支持的 JavaScript。
除了 ES6,你还会看到很多关于编译/转译 CoffeeScript 的内容,这是一种可以“编译”为 JavaScript 的简写语言。
- Ember CLI 特别通过 ember-cli-babel 插件使用 Babel。
UI
UI 代表用户界面,本质上是用户在设备上看到并与之交互的内容。在 Web 方面,UI 通常由一系列页面组成,这些页面包含用户可以交互以执行特定功能的视觉元素,例如按钮和图标。
Shadow DOM (影子 DOM)
不要与虚拟 DOM (Virtual DOM) 混淆。Shadow DOM 仍在开发中,但基本上是提议的一种在应用 DOM 中封装“隔离”DOM 的方式。
创建可重用的“小部件”或控件可能是此功能的一个很好的用例。浏览器使用它们自己的 Shadow DOM 版本实现了一些控件。
Virtual DOM (虚拟 DOM)
不要与 Shadow DOM 混淆。虚拟 DOM 的概念意味着将你的代码(或者在我们的例子中,Ember)从使用浏览器 DOM 中抽象出来,转而使用一个可以轻松访问进行读/写甚至序列化的“虚拟”DOM。