博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络请求问题解决指南
阅读量:7098 次
发布时间:2019-06-28

本文共 864 字,大约阅读时间需要 2 分钟。

本文翻译自

由于个人水平有限,翻译中难免有纰漏和不足,望不吝指正。

参见了解更多关于Chrome Devtool中网络面板的基础知识。

队列中或停滞的请求

症状

Chrome浏览器支持6个请求的并行下载,后面的请求将会推入请求队列中或者停滞不前。一旦前面的六个请求之一完成,队列中的一个请求将会启动。

An example of a queued or stalled series in the Network panel.

Figure 1. 一个网络面板中关于队列或停滞请求的例子。在上图的瀑布图中,你可以看到6个并行的logo-1024px.pngxhr请求。而后面的图片请求将停止不前直到上面某一个请求完成。

原因

同一域名下太多请求发出。在HTTP/1.0或者HTTP/1.1连接下,Chrome对于同一主机支持最多同时6个TCP链接。

解决方案

  • 如果一定要用HTTP/1.0或者HTTP/1.1,可以通过域名分片来解决上述问题。
  • 使用HTTP/2,在HTTP/2协议下不用对域名进行分片。
  • 移除或者延迟不必要的请求来使得一些关键性请求能够更早下载。

Slow Time To First Byte (TTFB)

症状

请求花费很长时间来接受到服务器传来的第一个字节。

An example of a request with a slow Time To First Byte.Figure 2. 上面是一个关于花费长时间从服务器获取到第一个字节的例子。在瀑布图中长长的绿色横柱表示了请求等待了很长时间。

原因

  • 客户端和服务器之间的链接慢。
  • 服务器反应迟缓,在本地启动服务,如果你依然有一个很慢的TTFB,那说明服务器链接或者服务器本身反应很慢。

解决方案

  • 如果是连接缓慢,考虑将你的内容放到CDN上面或者更换服务器提供商。
  • 如果是服务反应慢,考虑优化数据库请求、实施缓存或者更改服务器配置。

下载缓慢

症状

请求中的下载阶段花费很长时间

An example of a request that takes a long time to download.

Figure 3. 上图是一个请求下载花费长时间的例子,在上面的瀑布图中elements-panel.png旁的的一条长长的蓝色横柱表示了花费了很长时间来下载该图片。

原因

  • 客户端和服务器链接缓慢
  • 下载内容过大。

解决方案

  • 考虑将你的内容通过CDN来提供,或者更换服务器提供商。
  • 优化请求、减少下载内容体积。

转载地址:http://bdeql.baihongyu.com/

你可能感兴趣的文章
WPF和WinRT中的导航问题
查看>>
apiCloud使用微信转发时的注意事项
查看>>
安卓开发者的小程序入门整理 页面跳转&生命周期
查看>>
14.当心命名函数表达式笨拙的作用域
查看>>
在HotFix SDK中接入Tinker
查看>>
我想邀请你和我一起学Android
查看>>
angular6 子组件向父组件通信
查看>>
flutter demo (四):对话框
查看>>
Redux compose()方法解析:
查看>>
JavaScript中Map与JSON转换要小心
查看>>
安卓手机上传图片后无响应
查看>>
Android防护扫盲篇
查看>>
spring 集成 webservice 进过反复测试终于完成了
查看>>
原型----《你不知道的js》
查看>>
关于Electron原生模块编译的一点总结
查看>>
小程序:模仿美团商品列表
查看>>
Angular学习笔记07——表单
查看>>
高价招ios和安卓APP马甲封装上架技术人员
查看>>
闭包、定时器
查看>>
iOS开发-面试小计(一)
查看>>