Vue服务端渲染在耗时计算中表现如何?
How does Vue server side rendering performs in time-consuming computations?
我目前正在为一家销售商品的大公司开发网站。他们拥有广泛的目录,其中包含大量搜索选项和过滤器,目前需要一些时间来计算和渲染(大约 1-2 秒)。我无法进一步加快此过程,因为我需要检查每个过滤器,并且 return 正确的结果。
因此,当我单击复选框以应用过滤选项时,网站冻结(chrome 开发工具中的性能选项卡显示 JS 引擎非常繁忙)。我担心潜在用户会在引擎繁忙时不断重复点击 - 而不是耐心等待 - 导致令人沮丧的等待以检查-取消检查和未应用过滤结束。我也尝试将耗时的操作包装在new Promise
中,但它仍然没有响应,最后以同样的方式冻结浏览器。
所以我要问两个问题:
- 有没有办法在 Vue 计算结果时禁止进一步的用户输入(也许,应用 "loading" 屏幕?我尝试这样做,通过在 method/computed 和实际函数体之前,没有成功)
- 如果我在 Vue 中使用 服务器端渲染,它会如何表现?它是否仍会冻结那 1 秒,等待服务器有效负载,或者它是否与
Promise
函数相当?
我真的不知道如果我澄清了问题,(我希望我的英语是正确的,即使在技术上可能不正确,因为我是),如果有有一些我遗漏的信息我可以愉快地补救。
我的建议是将这个复杂的逻辑移动到客户端工作脚本中,该脚本可以发出请求和进行任何过滤。其次,作为 UI/UX 级别,将添加一个 "Working..." 叠加层,其中包含某种形式的动画,表明工作正在完成。
至于在服务器端完成这项工作...如果您通过 Node 进行服务器端渲染,那会进行复杂的阻塞计算,这将禁止所有用户,除非您注入某种形式的工作池或 RPC 前端工作队列。这是可能的,但答案和选项更复杂,超出了本网站的范围。
如上所述,一个有活力的工人可能是最好的选择。
我目前正在为一家销售商品的大公司开发网站。他们拥有广泛的目录,其中包含大量搜索选项和过滤器,目前需要一些时间来计算和渲染(大约 1-2 秒)。我无法进一步加快此过程,因为我需要检查每个过滤器,并且 return 正确的结果。
因此,当我单击复选框以应用过滤选项时,网站冻结(chrome 开发工具中的性能选项卡显示 JS 引擎非常繁忙)。我担心潜在用户会在引擎繁忙时不断重复点击 - 而不是耐心等待 - 导致令人沮丧的等待以检查-取消检查和未应用过滤结束。我也尝试将耗时的操作包装在new Promise
中,但它仍然没有响应,最后以同样的方式冻结浏览器。
所以我要问两个问题:
- 有没有办法在 Vue 计算结果时禁止进一步的用户输入(也许,应用 "loading" 屏幕?我尝试这样做,通过在 method/computed 和实际函数体之前,没有成功)
- 如果我在 Vue 中使用 服务器端渲染,它会如何表现?它是否仍会冻结那 1 秒,等待服务器有效负载,或者它是否与
Promise
函数相当?
我真的不知道如果我澄清了问题,(我希望我的英语是正确的,即使在技术上可能不正确,因为我是),如果有有一些我遗漏的信息我可以愉快地补救。
我的建议是将这个复杂的逻辑移动到客户端工作脚本中,该脚本可以发出请求和进行任何过滤。其次,作为 UI/UX 级别,将添加一个 "Working..." 叠加层,其中包含某种形式的动画,表明工作正在完成。
至于在服务器端完成这项工作...如果您通过 Node 进行服务器端渲染,那会进行复杂的阻塞计算,这将禁止所有用户,除非您注入某种形式的工作池或 RPC 前端工作队列。这是可能的,但答案和选项更复杂,超出了本网站的范围。
如上所述,一个有活力的工人可能是最好的选择。