为什么Twitter会从客户端渲染转换为服务器端渲染?
问题描述:
a blog post Twitter表示他们已经从客户端渲染转移回服务器端渲染。为什么Twitter会从客户端渲染转换为服务器端渲染?
我想找到一个更彻底的原因解释。
在后他们的状态:
[客户方渲染]缺乏可用只在服务器上各种优化支持。
什么是优化缺乏客户端?
他们也状态:
[服务器端渲染]减少[S]在性能上跨浏览器
我看这是一些浏览器未与客户方的渲染以及执行差异。哪些浏览器和渲染速度比较慢?
答
我会推测优化,如各种内容块的缓存,以及在字节/操作码级别上运行,而不是由浏览器重新解释。就客户而言,它可能是IE(尤其是9之前的版本),也可能是其他一些老版本的浏览器。也可能用于各种移动设备,其中cpu在preimum和一些额外的HTML下来的线最好等待,直到CPU可以绕过来运行所有的JavaScript。
当然,这也意味着所呈现的html更加难以抓取,因此它可以帮助他们为想要编写脚本以与twitter网站外观搭配的人添加一点路障。
如果你联系他们,你可能会得到更好的信息...... – 2012-08-01 21:15:31
很容易判断哪个浏览器表现不佳。他们不得不这样做,因为渲染DOM元素或者在IE中执行几乎所有的DOM操作都会完全打击。任何时候你必须添加元素到一个页面中,通常最好是将它们渲染到DOM上,并将它们一次全部插入到页面中。 – scrappedcola 2012-08-01 21:27:52
作为@scrappedcola的后续工作,我测试了IE中的DOM操作(iirc 10000x append,remove)的性能。 Chrome 20需要〜0 ms,IE9需要16秒(IE6:约一分钟)。 – 2012-08-01 21:50:24