在客户端上进行SSR和热模块更换-等待服务器重新加载

时间:2019-04-09 10:20:49

标签: javascript reactjs ssr webpack-hmr

我正在构建一个包含服务器端渲染的React应用。我正在使用webpack HMR,并且已将HMR服务器设置在与快递服务器端不同的端口上(因此我运行了两个“服务器”,一个用于应用程序,一个用于HMR)。

由于SSR,客户端和服务器内部都引用了React组件,因此更改会触发客户端和服务器侧的重新构建。

我看到的问题是客户端收到HMR更新并开始重新呈现更改,但是其中一部分包括服务器提供的图像资产的链接。开始发出请求时,服务器仍在重新启动,因此对于许多映像资产,我都“无法访问主机”(服务器重新启动有点慢的一个原因是它需要连接并验证数据库表)

我看过一些有关应用于服务器的HMR的文章,但这似乎有些粗略,并且稍有延迟就足够了,并且可以避免在无聊时重新加载整个页面客户端。我还没有找到这样的选择。

服务器正在使用express.static来提供图像资产,这最终将改变,以便服务器将根据客户端要求缓存并提供图像资产的多个变体(因此图像资产具有响应性,例如srcSet等)。

我可以看到,如果由客户端重新渲染触发对服务器的任何客户端请求(例如数据库更新),这可能会成为问题。

我想知道如何延迟/推迟客户端重新渲染,直到服务器重新联机?

0 个答案:

没有答案