vue 单页面 http stalled 的情况

不久前出现了一个问题,页面重复跳转( vue-router )几次后,某个请求会响应很慢,从几十毫秒到十几秒,就感觉很奇怪。看了看后台响应,实际上只有十多毫秒的消耗。但是那多出的十几秒是哪来的呢?也不会是路由转发的耗时,因为前几次相同请求耗时都在毫秒级,而且这个现象是必现的。

于是看了下控制台该请求的 timing,发现它的 stalled 就占了90%,google 了一下。原来是请求数过多,页面跳转前的仍在请求。chrome 最多的同时请求数是 6 个,其余请求会处于 stalled 即挂起状态。于是乎,我就在每个路由前跳转前(router.beforeEach)都把之前的请求抛弃掉,这样就解决了。

对于非单页面应用的话,很少出现这种情况,因为页面刷新了之前的请求就被抛弃了。还有一种可能的会有是:实时搜索,这种需求也会不断发起请求。

posted @ 2017-06-21 22:43  雷夫·麦  阅读(985)  评论(0编辑  收藏  举报