点击按钮触发20多个请求接口,打开页面的时候会很卡,请问有什么方法优化?
现在是将近30秒才能加载完。
期望当用户点击按钮进到页面的时候,怎么让它十秒内加载完。
点击按钮触发20多个请求接口,打开页面的时候会很卡,请问有什么方法优化?
现在是将近30秒才能加载完。
期望当用户点击按钮进到页面的时候,怎么让它十秒内加载完。
1、后端把一些可以合并在一起的接口进行合并
2、前端可以看哪些接口可以延迟调用,异步请求等
3、后端可以把一些固定数据的接口进行缓存也能加快请求速度
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
当然,他们都没说如何分析。其实你要先分析当前的场景,然后针对场景出方案,不是无脑巴拉巴拉。
举个例子,让后端搞快点,这不是废话吗,是我不想上清华北大吗?
所以应该问一下为什么不快?后端说因为这是个大计算的任务,那么下面就是问能不能提前计算?或者说使用缓存?阶段计算?
当然这里面你也可以用到一些工具,比如说
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
一般这种业务问题,要根据业务场景来决定处理方式。
20个API,是不是都要求实时数据?
有没有一些数据,是可以先显示上一次放回的数据,然后延迟请求的?
有没有一些数据,是不影响页面呈现,可以分屏加载,延迟请求的?
从前端的方式,只能通过调整顺序来解决问题。
要从根源上解决还得在服务器端。
还是得具体分析:
请求处理本身慢
数据量大
前端请求处理不当导致慢
网络堵塞
页面卡顿具体原因还得实际分析,要么数据量太大,一次性渲染的 dom 太多,要么就是代码中个中 监听、计算属性等等使用不合理,导致页面数据容易产生重复更新等等
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
一个按钮触发 20 个接口……
我不想说前端还是后端的问题,这个问题其他各位已经说得很清楚了。
作为一个产品来说,一个按钮让用户等 30 秒,是否考虑过用户的感受?如果考虑用户的感受,那这 30 秒应该如何优化?把优化方案讨论出来,该谁的事就谁的事,说不定前端后端都不用改,需要改的是数据库……或者运维升级下服务器就能解决呢?
处理这种问题,还是不要把各个子团队分离开来,都是做产品(或项目)的,还是需要从整体的角度来考虑。
30秒!!!赶紧开会讨论解决方案吧。
优化思路:
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.7k 阅读✓ 已解决
3 回答10.3k 阅读✓ 已解决
4 回答7.2k 阅读
5 回答7.1k 阅读✓ 已解决
5 回答8.2k 阅读
这东西得找后端优化,前端能做的就是减少接口调用。
但
减少接口调用
可能就会影响部分功能,这就得找业务协商。所以,最后结论: