请教下,rails + turbolinks 如何做首屏加载 loading
尝试了 turbolinks 各种事件,但是都没有符合首屏加载
噗,用 turbolinks 的网站一般用服务端渲染,没有 SPA 那么长的客户端渲染时间需要加 loading 动画。
硬要加的话,把主体部分设成 display: none,loading 部分设成可视,然后在 turbolink:load 事件里面把两者显示切换过来。如果加载太快就用 setTimeout 再等几秒。
display: none
turbolink:load
setTimeout
其实我也不想用,但是已经用上了 CDN,全站加速,什么都弄了,但是第一次访问的时候,还是很慢,白屏 2-3 秒
先分析一下是哪里慢,服务器响应慢的话优化服务器(算法或缓存),网络慢的话看 CDN 是否生效。
如果确实有很慢的服务器查询无法优化,那么可以考虑用分布加载等方案,这个要看你喜欢怎么做了,不一定要动 Turbolinks,例如可以用 Stimulus 写一个异步加载的 controller(官方例子),在这个 controller 实现 loading 动画。
具体情况具体分析。