app shell model表示app shell包含所需的最低HTML,CSS和&首先加载JavaScript,然后动态加载内容。这似乎意味着使用JavaScript和API延迟加载内容。
例如上文Google I/O 2016中提到的PWA。
但是,这种方法意味着您的内容仅适用于支持JavaScript的浏览器。
这也可能影响搜索引擎索引,例如在测试Google I / O 2016网站时,如果禁用JavaScript,则内容不可用。
建议的方法是什么,因为这似乎违反了渐进式增强的原则?
答案 0 :(得分:1)
(警告:有很多不同的方法来实现服务器端渲染。)
如果您“正确”使用服务器端呈现,那么您的服务器应该响应使用完整HTML文档发送给它的任何导航请求,其中包含特定于URL的内容。在这个模型中,JavaScript不是将内容放到屏幕上所必需的,虽然它可能需要“交互式”功能,或用于单页应用程序样式导航。
皱纹是,一旦安装了服务工作者,并且如果您正在利用App Shell模型,您的浏览器将不再需要向服务器发送导航请求以获得响应。它可以使用以前缓存的App Shell HTML来完成请求,完全绕过网络。
不支持服务工作者的浏览器或其他理论用户代理将继续向您的服务器发送导航请求,您的服务器将继续使用完整的HTML文档对其进行响应。
有一段视频我几年前给出了一个更详细解释的演讲:https://youtu.be/jCKZDTtUA2A?t=1428,以及在https://github.com/GoogleChrome/sw-precache/tree/master/app-shell-demo
利用此技术的示例应用程序