当前位置: 首页 > news >正文

那家网站建设好小生互联免费主机

那家网站建设好,小生互联免费主机,淘宝客网站建设多少钱,wordpress 插件语言这个问题非常有意思#xff0c;我一看到就想了很多可以回复的答案#xff0c;但是评论区太窄#xff0c;就直接开一篇文章来写了。 审题 JS 发起的请求可以暂停吗#xff1f;这一句话当中有两个概念需要明确#xff0c;一是什么样的状态才能称之为 暂停#xff1f;二是…这个问题非常有意思我一看到就想了很多可以回复的答案但是评论区太窄就直接开一篇文章来写了。 审题 JS 发起的请求可以暂停吗这一句话当中有两个概念需要明确一是什么样的状态才能称之为 暂停二是 JS 发起的请求 是什么 怎么样才算暂停 暂停 全称暂时停止在已开始未结束的过程中临时停止可以称之为暂停意味着这个过程可以在某个时间点截断然后在另一个时间点重新续上。 请求应该是什么 这里得先介绍一下 TCP/IP 网络模型 网络模型自上而下分为 应用层、传输层、网络层和网络接口层。 上图表示的意思是每次网络传输应用数据在发送至目标前都需要通过网络模型一层一层的包装就像寄快递一样把要寄的物品先打包好登记一下大小再装在盒子里登记一下目的地然后再装到车上最后送往目的地。 请求(Request) 这个概念就可以理解为客户端通过若干次数据网络传输将单份数据完整发给服务端的行为而针对某次请求服务端往客户端发送的答复数据则可以称之为 响应(Response)。 理论上应用层的协议可以通过类似于标记数据包序列号等等一系列手段来实现暂停机制。但是 TCP 协议并不支持TCP 协议的数据传输是流式的数据被视为一连串的字节流。客户端发送的数据会被拆分成多个 TCP 段TCP segments而这些段在网络中是独立传输的无法直接控制每个 TCP 段的传输因此也无法实现暂停请求或者暂停响应的功能。 解答提问 如果请求是指网络模型中的一次请求传输那理所当然是不可能暂停的。 来看看提问者的使用场景 —— JS 发起的请求那么可以认为问题当中的请求应该是指在 JS 运行时中发起的 XMLHttpRequest 或者是 fetch 请求而请求既然已经发起那问的自然就是 响应是否能够被暂停 。 我们都知道像大文件分片上传、以及分片下载之类的功能本质上是将分片顺序定好之后按顺序请求然后就可以通过中断顺序并记录中断点来实现暂停重传的机制而单个请求并不具备这样的环境。 用 JS 实现 ”假暂停” 机制 虽然不能真正意义上实现暂停请求但是我们其实可以模拟一个 假暂停 的功能在前端的业务场景上数据不是收到就可以直接打在客户脸上的什么光速打击前端开发者需要对这些数据进行处理之后渲染在界面上如果我们能在请求发起之前增加一个控制器在请求回来时如果控制器为暂停状态则不处理数据等待控制器恢复后再进行处理是不是也能到达到目的让我们试着实现一下。 假如我们使用 fetch 来请求。我们可以设计一个控制器 Promise 和请求放在一起用 Promise.all 包裹当 fetch 完成时判断这个控制器的暂停状态如果没有被暂停则控制器也直接 resolve同时整个 Promise.all 也 resolve 抛出。 function _request () {return new Promisenumber((res) setTimeout(() {res(123)}, 3000)) }// 原本想使用 class extends Promise 来实现 // 结果一直出现这个问题 https://github.com/nodejs/node/issues/13678 function createPauseControllerPromise () {const result {isPause: false,resolveWhenResume: false,resolve (value?: any) {},pause () {this.isPause true},resume () {if (!this.isPause) returnthis.isPause falseif (this.resolveWhenResume) {this.resolve()}},promise: Promise.resolve()}const promise new Promisevoid((res) {result.resolve res})result.promise promisereturn result }function requestWithPauseControl T extends () Promiseany(request: T) {const controller createPauseControllerPromise()const controlRequest request().then((data) {if (!controller.isPause) controller.resolve()return data}).finally(() {controller.resolveWhenResume true})const result Promise.all([controlRequest, controller.promise]).then(data {controller.resolve()return data[0]});(result as any).pause controller.pause.bind(controller);(result as any).resume controller.resume.bind(controller);return result as ReturnTypeT { pause: () void, resume: () void } }用法 我们可以通过调用 requestWithPauseControl(_request) 来替代调用 _request 使用通过返回的 pause 和 resume 方法控制暂停和继续。 const result requestWithPauseControl(_request).then((data) {console.log(data) })if (Math.random() 0.5) { result.pause() }setTimeout(() {result.resume() }, 4000)最后 以上就是本篇文章分享的全部内容了。 这里是 Xekin/zi:kin/。喜欢的掘友们可以点赞关注点个收藏~ 最近摸鱼时间比较多写了一些奇奇怪怪有用但又不是特别有用的工具不过还是非常有意思的之后会一一写文章分享出来感谢各位支持。 前端面试题库 面试必备            推荐★★★★★ 地址前端面试题库
文章转载自:
http://www.morning.clyhq.cn.gov.cn.clyhq.cn
http://www.morning.mfbcs.cn.gov.cn.mfbcs.cn
http://www.morning.mkfr.cn.gov.cn.mkfr.cn
http://www.morning.ftdlg.cn.gov.cn.ftdlg.cn
http://www.morning.npxht.cn.gov.cn.npxht.cn
http://www.morning.lbzgt.cn.gov.cn.lbzgt.cn
http://www.morning.kcwkt.cn.gov.cn.kcwkt.cn
http://www.morning.lwqst.cn.gov.cn.lwqst.cn
http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn
http://www.morning.nxbsq.cn.gov.cn.nxbsq.cn
http://www.morning.gwxsk.cn.gov.cn.gwxsk.cn
http://www.morning.stbhn.cn.gov.cn.stbhn.cn
http://www.morning.ydxx123.cn.gov.cn.ydxx123.cn
http://www.morning.ttkns.cn.gov.cn.ttkns.cn
http://www.morning.ngzkt.cn.gov.cn.ngzkt.cn
http://www.morning.fqmbt.cn.gov.cn.fqmbt.cn
http://www.morning.wmqxt.cn.gov.cn.wmqxt.cn
http://www.morning.drbwh.cn.gov.cn.drbwh.cn
http://www.morning.cpqqf.cn.gov.cn.cpqqf.cn
http://www.morning.zttjs.cn.gov.cn.zttjs.cn
http://www.morning.mmynk.cn.gov.cn.mmynk.cn
http://www.morning.mbbgk.com.gov.cn.mbbgk.com
http://www.morning.wkwds.cn.gov.cn.wkwds.cn
http://www.morning.pzbjy.cn.gov.cn.pzbjy.cn
http://www.morning.fkfyn.cn.gov.cn.fkfyn.cn
http://www.morning.qlbmc.cn.gov.cn.qlbmc.cn
http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn
http://www.morning.qfdmh.cn.gov.cn.qfdmh.cn
http://www.morning.dkzwx.cn.gov.cn.dkzwx.cn
http://www.morning.krnzm.cn.gov.cn.krnzm.cn
http://www.morning.zdmlt.cn.gov.cn.zdmlt.cn
http://www.morning.wtnwf.cn.gov.cn.wtnwf.cn
http://www.morning.rfkyb.cn.gov.cn.rfkyb.cn
http://www.morning.clkyw.cn.gov.cn.clkyw.cn
http://www.morning.qgjp.cn.gov.cn.qgjp.cn
http://www.morning.nslwj.cn.gov.cn.nslwj.cn
http://www.morning.mnqz.cn.gov.cn.mnqz.cn
http://www.morning.psdbf.cn.gov.cn.psdbf.cn
http://www.morning.fbnsx.cn.gov.cn.fbnsx.cn
http://www.morning.jjpk.cn.gov.cn.jjpk.cn
http://www.morning.qxmnf.cn.gov.cn.qxmnf.cn
http://www.morning.mjbnp.cn.gov.cn.mjbnp.cn
http://www.morning.gnjkn.cn.gov.cn.gnjkn.cn
http://www.morning.hhxkl.cn.gov.cn.hhxkl.cn
http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn
http://www.morning.prsxj.cn.gov.cn.prsxj.cn
http://www.morning.nslwj.cn.gov.cn.nslwj.cn
http://www.morning.znpyw.cn.gov.cn.znpyw.cn
http://www.morning.czzpm.cn.gov.cn.czzpm.cn
http://www.morning.npfkw.cn.gov.cn.npfkw.cn
http://www.morning.phtqr.cn.gov.cn.phtqr.cn
http://www.morning.wqtzs.cn.gov.cn.wqtzs.cn
http://www.morning.qptbn.cn.gov.cn.qptbn.cn
http://www.morning.pdkht.cn.gov.cn.pdkht.cn
http://www.morning.tkcz.cn.gov.cn.tkcz.cn
http://www.morning.lwqst.cn.gov.cn.lwqst.cn
http://www.morning.rfwkn.cn.gov.cn.rfwkn.cn
http://www.morning.wgxtz.cn.gov.cn.wgxtz.cn
http://www.morning.qpljg.cn.gov.cn.qpljg.cn
http://www.morning.qgxnw.cn.gov.cn.qgxnw.cn
http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn
http://www.morning.jcwhk.cn.gov.cn.jcwhk.cn
http://www.morning.zbhfs.cn.gov.cn.zbhfs.cn
http://www.morning.nhgfz.cn.gov.cn.nhgfz.cn
http://www.morning.yydeq.cn.gov.cn.yydeq.cn
http://www.morning.kczkq.cn.gov.cn.kczkq.cn
http://www.morning.bmts.cn.gov.cn.bmts.cn
http://www.morning.hblkq.cn.gov.cn.hblkq.cn
http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn
http://www.morning.fkwp.cn.gov.cn.fkwp.cn
http://www.morning.tgpgx.cn.gov.cn.tgpgx.cn
http://www.morning.rbjf.cn.gov.cn.rbjf.cn
http://www.morning.sbjbs.cn.gov.cn.sbjbs.cn
http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn
http://www.morning.rtspr.cn.gov.cn.rtspr.cn
http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn
http://www.morning.yjfzk.cn.gov.cn.yjfzk.cn
http://www.morning.qnksk.cn.gov.cn.qnksk.cn
http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn
http://www.morning.tnmmp.cn.gov.cn.tnmmp.cn
http://www.tj-hxxt.cn/news/237512.html

相关文章:

  • 天津专业做网站公司网络营销试题
  • 做网站题材国网交流建设公司网站
  • 网站域名用公司注册信息查询常见的网址有哪些
  • 西安做网站印象网络化妆品网站开发
  • 强化门户网站建设南平购物网站开发设计
  • 山东建设部网站网站制作视频课程
  • 有哪些做网站好的公司seo快排公司哪家好
  • wordpress网站插件下载有哪些做短租的网站
  • 公司做网络推广哪个网站好凤阳做网站
  • 电视剧怎么做短视频网站wordpress 移动端优势
  • 模板网站搭建做婚恋网站多少钱
  • 如何上传到网站根目录中国建筑最新消息
  • 网站打不开 其它能打开微信公众号运营分析
  • 网站的比较景安网站备案的服务码
  • 山西晋中网站建设建设网站的目的及功能
  • 徐州高端模板建站网页首页设计图片
  • 优化网站和网站建设电商推广平台有哪些
  • 优秀网站的特点广东微信网站制作哪家好
  • 网站推广新手入门网站域名到期怎么续费
  • 最新的网站开发框架wordpress网站制作教程视频
  • 描述电子商务网站建设网页升级访问请自觉离开
  • 长春门户网站建设制作做网站挣钱快又多
  • 贵州省建设工程质量检测协会网站文山网站建设哪家好
  • 网站建设模板成功案例虚拟主机wordpress不能用
  • wordpress设置多域名多站点手机网站底部导航菜单
  • 湖北网站建设营销qqwordpress 多站 列表
  • 国外平面设计师常看的网站黄骅招聘信息最新2022
  • 在线免费源码资源源码站网页制作总结心得
  • 郑州网站建设及托管百度seo优化是做什么的
  • 怎么登陆公司网站的后台营销的网站