首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么服务器端的HTML渲染速度要快于客户端?

为什么服务器端的HTML渲染速度要快于客户端?
EN

Stack Overflow用户
提问于 2012-10-28 12:23:16
回答 3查看 4.3K关注 0票数 13

我在一个大型网站上工作,我们正在将很多功能转移到客户端(Require.js、Backbone和Handlebar堆栈)。甚至还有关于可能将所有渲染转移到客户端的讨论。

但读了一些文章,特别是那些关于Twitter远离客户端渲染的文章,其中提到服务器端更快/更可靠,我开始产生疑问。我不明白为什么在JS中从JSON和模板呈现相当简单的HTML小部件是在具有4-8 GB RAM的双核CPU上的当代浏览器,比在您的服务器端应用程序中创建数十个includes要慢。关于这一点,有没有实际的基准数据?

此外,服务器端模板引擎解析HTML模板似乎不会比从Handlebar模板呈现相同的HTML代码更快,特别是如果这是一个预编译的JS函数?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-28 12:30:49

原因有很多:

  1. JavaScript是一种解释语言,它比服务器端慢(通常是在编译语言中完成)
  2. DOM操作很慢,如果你在JS中操作它,它会导致很差的性能。有一些方法可以克服这个问题,比如准备在文本中渲染,然后评估它,这实际上可能会让你接近服务器端的rendering.
  3. Some浏览器太慢了,特别是旧的IE
票数 9
EN

Stack Overflow用户

发布于 2012-10-28 12:53:42

与解释型javascript

  • Caching,相比,编译语言的
  • 性能更佳--提供另一个用户已经请求的完全相同的页面,这就消除了每个客户端渲染它的需要。伟大的网站与巨大的流量-即新闻网站。微缓存甚至可以提供近乎实时的更新,同时还可以为来自缓存的大量流量提供服务。无需等待客户端渲染
  • 减少对使用旧计算机或运行缓慢/瘫痪的浏览器的用户的依赖
  • 只需担心渲染问题,减少对不同浏览器管理DOM (可靠性)

的依赖

但对于复杂的UI,交互的客户端呈现将提供更快的用户体验。

这真的取决于你试图优化的性能,以及为多少用户优化。

票数 4
EN

Stack Overflow用户

发布于 2017-04-06 20:28:32

要在客户端运行代码,首先必须加载代码。服务器端代码仅在服务器启动时加载,而客户端代码可能必须在每次页面启动时加载。在任何情况下,加载页面时都必须解释代码,即使文件已经缓存。您可能还在浏览器中缓存了JS解析树,但我认为这些不是持久的,所以它们不会存在很长时间。

这意味着无论JavaScript有多快(而且非常快),工作都必须在用户等待的时候执行。许多研究表明,页面加载时间极大地影响了用户对网站质量和相关性的感知。

底线是,在典型的开发人员环境中,您最多有500ms的时间从干净的缓存中呈现页面。速度较慢的设备和网络将使这种延迟对大多数用户来说几乎无法接受。

因此,在页面加载期间,您可能有50-100毫秒的时间在JavaScript中完成所有操作,这意味着渲染一个复杂的页面并不容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13106355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档