我试图通过内联关键css&来关注Ilya Grigoric's performance best practices js并稍后加载所有其余的异步。
我的问题是当我的页面需要第三方库以呈现其关键路径时。我想当使用像Angularjs这样的MVC库时,这不是一个选项,但是如果我想使用第三方模板库呢?是否有一个足够小的模板库,我可以内联?
我真的想要遵循那些最佳实践,建立一个超级快速的移动网络应用程序,使用当今的现代前端开发工具(Angularjs / Polymer等),这种接缝真的很难。
答案 0 :(得分:3)
问题广泛而含糊,所以很难回答。
你在这里遇到了几个问题。首先,“足够小”的想法是相对的。您可以内联任意数量的JavaScript,因此您可以在技术上内联您找到的任何模板库。
我不知道Grigoric的具体指导是什么,但如果您需要模板库为用户呈现任何内容,那么它就是您关键路径的一部分,应该尽快加载。也就是说,如果您正在尝试为您的用户创建快速体验,那么您似乎最好不要渲染html服务器端,以便移动设备可以更快地对响应做出反应。如果您的整个文档是在设备上使用javascript模板创建的,那么您将不得不等待整个DOM加载,等待javascript进行解析,最后等待您的模板在向用户显示任何内容之前进行处理
修改强>
在出现性能问题之前,请不要针对性能问题进行优化
目标不是制作“最快的页面”。相反,你的目标应该是创建一个“运作良好”的页面。你的问题确实没有“正确”的答案 - 这实际上取决于你的具体情况和目标。
关于'如果js处于领先地位,将会是一个问题':答案是肯定的。当然,您可以进行调整以加快速度,但基本架构仍然具有相同的限制 - 当您在客户端上渲染模板时,您在客户端上进行了更多的处理。此外,您必须等待大量时间才能在第一次请求时下载资源,这比在纯粹的html下线时更多。
无论哪种方式,在这两种情况下,您的应用都可以完美运行。如果你有更具体的问题,你应该实施一些东西并回来。