这个页面(碎碎念)原本想用 Astro 新搞的 Server Islands 做的,但是后来发现效果不好,所以推倒重做成了传统 SSR + CDN 缓存。
本页面的特点主要有两个:需要从非常非常慢的 Notion API 加载数据,以及所有人看到的内容都是相同的。下面简单总结一下在这个 Use Case 里 Server Islands 的好坏之处:
好处:
坏处:
总结来看,我不适合用 Server Islands 的主要原因就是因为所有人访问的页面内容都是相同的,不需要“定制”,所以传统的服务端渲染 + CDN 缓存就够了,而这样传统方案的坏处就是第一次访问(没 Cache)的时候,会慢到爆炸(至少 5 - 6 秒)才能出结果,虽然 Astro 对于异步组件可以流式传输 HTML 不至于真的白屏那么久,但是也是很让人抓狂的,而解决方法也就只能是吧 Cache 的 s-maxage
和 stale-while-revalidate
设置的大一点了,代价是 Notion 中的内容需要很久才能同步过去。
不知不觉写了这么多,说不定之后会加上我使用 Server Islands 的感受写一篇文章吧,感觉应该是个还不错的话题
本文使用“署名-非商业性使用-相同方式共享 4.0 国际(CC BY-NC-SA 4.0)”进行许可。
商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接。 如果您再混合、转换或者基于本作品进行创作,您必须基于相同的协议分发您贡献的作品。