6、加载和执行(Loading and Execution)
JavaScript 和用户界面更新在同一个进程中运行,因此一次只能处理一个事情。这意味着当 JavaScript 代码正在运行时,用户界面不能响应输入,反之亦然。高效地管理 UI 线程就是要确保 JavaScript 不能运行太长时间,以免影响用户体验。最后,请牢记住如下几点:
任何 JavaScript 任务都不应当执行超过 100 毫秒。过长的运行时间会导致 UI 更新出现明显的延迟,从而对用户体验产生负面的影响。
JavaScript 运行期间,浏览器响应用户交互的行为存在差异。无论如何,JavaScript 长时间运行将导致用户体验变得混乱和脱节。
定时器可以用来安排代码延迟执行,它使得你可以把长时间运行脚本分解成一系列的任务。
Web Workers 是新版浏览器支持的特征,它允许你在 UI 线程外部执行 JavaScript 代码,从而避免锁定 UI。
Web 应用越复杂,积极主动地管理 UI 线程就越重要。即使 JavaScript 代码再重要,也不应该影响用户体验。
7、Ajax
高性能的 Ajax 包括以下方面:了解你项目的具体需求,选择正确的数据格式与之匹配的传输技术。
作为数据格式,纯文本和 HTML 只适用于特定场合,但它们可以节省客户端的 CPU 周期。XML 被广泛应用而且支持良好,但是它十分笨重且解析缓慢。JSON 是轻量级的,解析速度快(被视为原生代码而不是字符串),通用性与 XML 相当。字符风格的自定义格式十分轻量,在解析大量数据集时非常快,但需要编写额外的服务端程序,并在客户端解析。