为什么文本渲染比服务器端渲染的图像慢呢?

我有很多例子,文字呈现比几乎感觉即时的图像慢。 我正在通过reactjs和服务器端使用nodejs进行渲染。 例如这个gif: http : //recordit.co/waMa5ocwdd

显示标题图像立即加载,CSS已经加载,因为颜色在那里和现在。 但是,由于某种原因,文本需要将近半秒的时间才会出现。 我该如何解决或优化?

如果你想尝试一下,gif中的网站是quran.com。

谢谢!

好的,所以debugging这种东西,打YSlow的最新技巧是很有用的。

一般来说,最好记住,浏览器会为你的页面中的每个项目提供不同的请求(例如,所有的东西都带有一个URL;图片,CSS等),而且大多数对并发下载有一定的限制共同的,但它变化和改变很多)。 所以12个请求不是很多,现在还是时间。 至于分析和加载你的JS的时间等等。parsing和加载JS是更多的时间将会发生(通常,在大多数浏览器,将暂停进一步的下载,直到完成)

不用花费大量的时间,我猜测你的HTML加载,在头部图像调用,然后浏览器开始击中所有的JS和反应的框架代码,这需要一两个时间来找出下一步要呈现。

再次,YSlow有很多关于如何优化这些东西的build议,但那是我的2c。

编辑:添加细节,以回应你的第一个问题。

正如我上面提到的,JS只是问题的一部分。 渲染时间的总和将包括下载和parsing所有内容(包括CSS等)所花费的总时间。 作为一个例子,在Chromedebugging工具中看起来好像需要大约300ms的时间才能下载html,并且足够被下一个资源调用。在我的浏览器中,接下来的两个是你的主要CSS和标志。 PNG。 在800毫秒左右,当你的标志完成下载,它几乎立即呈现。 在html下载完成的时候,第一个js脚本开始下载(我不认为把JS从停止发生,尽pipe它可能会停止parsing发生;我从来没有testing过)。 在大约700毫秒的地方,你开始拉下你正在使用的字体集,它看起来像他们约1秒完成下载。 你的第一个文本显示了大约200毫秒之后,所以我猜测,拉和parsing字体文件是什么是holdup(当与他们排在其他资源排队)。