我看过很多纯 CSS 和等效的 jQuery 之间的代码比较。但我正在寻找关于为什么纯 CSS 绝对比 jQuery 更快的详细信息。
以下是我看到的一些原因,但这些描述并不深入。我不确定它们是不是真的。
- CSS 不必由浏览器评估
- jQuery 必须由浏览器评估
- jQuery 通过脚本语言
难道 CSS 不是必须由浏览器评估并且还要通过脚本语言吗? CSS 不需要像 jQuery 那样遍历 DOM 还是 CSS 在那里有一些优势?
最佳答案
-
CSS doesn't have to be evaluated by the browser
没有。 CSS 是一种用于编写样式表的语言,然后必须由浏览器加载、解析和评估;见下文。
-
jQuery has to be evaluated by the browser
是的,因为...
-
jQuery goes through a scripting language
是的。 jQuery 是用 JavaScript 编写的,它和 CSS 一样,是一种必须由浏览器解析和评估的语言;再次,见下文。
Doesn't CSS have to be evaluated by the browser and also goes through a scripting language?
它必须由浏览器评估,但作为一种语言,它在 native 代码中实现,类似于布局引擎的其他核心语言功能,如 HTML 解析器和 JavaScript 引擎。 CSS 实现不会通过脚本语言实现(当然,除非布局引擎本身是用脚本语言编写的)。
CSS 样式通过 CSSOM 暴露给脚本语言,CSSOM 不是 CSS 实现本身,只是一个脚本 API,您可以将其视为 CSS 等同于 HTML 的 DOM。
jQuery 是用 JavaScript 编写的,然后由浏览器的 JavaScript 实现运行。如果您使用 jQuery 来应用 CSS,那么 jQuery 必须访问 DOM 和 CSSOM,它们又是用 JavaScript 实现的,浏览器必须运行。
这类似于使用 jQuery 选择器与 native 选择器 API。 jQuery 选择器在 Sizzle 中实现,一个 JavaScript 选择器库,而 document.querySelector()
是一个 DOM 方法,允许您直接从脚本使用浏览器 native 实现的选择器引擎。
关于jquery - 性能:纯 CSS 与 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16675952/