通过操纵domw来更改内容。Javascript与创建新的HTML/CSS页面:哪一种更有效?
我正在建立一个非常简单的网站,有几个不同的部分,如“关于我们”、“图片”和“联系” 我想知道哪个更高效(性能更好,响应时间更短): 1.每当客户端单击菜单中的某一项(“关于我们”、“联系”等)或 2.为我希望站点拥有的这4或5个部分中的每一部分创建一个新页面(不同的HTML和CSS文件)通过操纵domw来更改内容。Javascript与创建新的HTML/CSS页面:哪一种更有效?,javascript,html,css,performance,dom-manipulation,Javascript,Html,Css,Performance,Dom Manipulation,我正在建立一个非常简单的网站,有几个不同的部分,如“关于我们”、“图片”和“联系” 我想知道哪个更高效(性能更好,响应时间更短): 1.每当客户端单击菜单中的某一项(“关于我们”、“联系”等)或 2.为我希望站点拥有的这4或5个部分中的每一部分创建一个新页面(不同的HTML和CSS文件) 提前谢谢 对于这样的决策,这就是创建、等前端框架的原因 显然,页面更改(如2所示)将比1慢得多,因为: 必须重新加载整个页面(清除dom,然后重新构建) 必须重新应用所有共享样式/绑定 重复请求的开销(这会给
提前谢谢 对于这样的决策,这就是创建、等前端框架的原因 显然,页面更改(如2所示)将比1慢得多,因为:
- 必须重新加载整个页面(清除dom,然后重新构建)
- 必须重新应用所有共享样式/绑定
- 重复请求的开销(这会给页面加载带来网络延迟)
类似于React的框架通过模拟虚拟DOM来处理此问题,其中:
- 所有操作都在内存中计算
- 然后对更改进行优化
- 只有更改的差异应用于实际的DOM
现代web组件框架(如Polymer,x-tag)通过使用声明性html语法将数据绑定到html/JS行为来处理此问题。优化的工作原理是:
- 仅在该元素的范围内利用执行操作和样式的阴影dom
- 将所有事件静态绑定到创建的元素(无需重复甚至回调)
- 对组件中所有Id元素的静态引用
- 这将导致选择速度与jQuery的
方法相比的O(n)
选择速度O(1)
- 这将导致选择速度与jQuery的
- 编写一次,使用/自定义无处不在的方法