浏览器你为何要干掉个人请求?

前两天发现了一个对于我而言比较猎奇的事情:在点击跳转链接以后,新打开的页面出现异常(原本是要直接跳转到网页版qq的,结果白屏),顺手F12了一下,看到一个红色的请求,哦原来是有请求失败了呀,再仔细一看...这个请求返回的status是canceled,奇怪哦,被cancel掉了。
被cancel掉的无辜请求前端

浏览器你就不能矜矜业业的好好发送请求吗? node

待我平静下来,去sf上面找答案,在通过几回超链的跳转以后,我来到了一个尽是English的页面,虽然本人英语还算不差,可是当时心浮气躁,没看两眼就关掉了。(那个时候的我只想当一个无脑的伸手党...恨不得有人能够给我活灵活现的讲解一下...)
最后去求助了一位好盆友,才知道了这个问题的答案,不卖关子,先来解答。浏览器

stackoverflow上面的最高票回答:
stackoverflow服务器

划个重点:微信

  1. The DOM element that caused the request to be made got deleted (i.e. an IMG is being loaded, but before the load happened, you deleted the IMG node)app

  2. You did something that made loading the data unnecessary. (i.e. you started loading a iframe, then changed the src or overwrite the contents)spa

  3. There are lots of requests going to the same server, and a network problem on earlier requests showed that subsequent requests weren't going to work (DNS lookup error, earlier (same) request resulted e.g. HTTP 400 error code, etc)3d

根据上面所说的,浏览器之因此会干掉请求,有如下三种缘由code

  • 发起此次请求的DOM元素被删除了。(eg:一个img元素节点,在图片加载完成以前就不幸被删掉了)server

  • 开发者作了一些使加载数据变得没必要要的事情。(eg:你加载了一个iframe,接着直接改变了src或者用document.write重写了内容)

  • 有大量的请求指向同一个服务器,以前请求的错误代表相同后续的请求是行不通的(DNS查询错误、或是排在前面诶对相同请求是有错误的,好比400状态码)

通过这个事情,不只get到了一个新姿式,并且更重要的是得到到的反思。
感谢个人好友磊磊用实际行动告诉我:忌浮躁

可是并非每一个故事都有一个happy ending,我在一开始说的页面白屏问题尚未获得解决,更奇怪的是...周围同事们都纷纷表示这个页面没问题...我也没配host啊...不过已经能够基本锁定是我这边出的问题了...若是你有相似的状况...我能够求你赐个教吗...

这是一个自认为还算有趣的前端er
微信公众号

相关文章
相关标签/搜索