什么是阿贾克斯?那么我们该如何使用 g s 发起阿贾克斯请求呢? 阿雅克斯呢?它是一种用于创建交互式和动态网页的技术,他能允许使用 gs 在不重新加载整个页面的情况下和服务器进行数据交换。 下面呢是一些发起阿蒋克斯请求的一些步骤。第一个呢,就是需要我们创建一个叉 m l http request 对象,那么我们可以通过下面这样一行代码来创建这样一个对象。 第二步呢,就是设置请求的类型, u r l 和是否异步。我们可以使用 open 这个方法来设置请求的类型,也就是 get 或者 post, 那么 u r l 和是否异步?接下来这一行代码就是使用了 open 这个方法,首先设置盖, 然后去请求 u i l, 接着是否一步。第三个呢,就是注册一个回调函数,用于处理服务器响应。可以使用 already state change 这个属性呢,注册一个回调函数,该函数在 red state 属性改变时会被触发, 通常在 ready state 等于四的时候,表示请求已经完成,并且呢 studios 呢,它等于二百,也表示成功响应。这个时候呢,哎,就可以去呃处理服务器响应,例如下面这几行代码。 ok, 那么最后呢,就是发送请求,嗯,我们可以使用送的这个方法呢去发送请求,如果是 pose 的请求,可以将数据作为参数传递给送的这个方法,例如下面这一行代码。好,那么以上呢,就是我们使用纯 gs 来发送阿贾克斯请求的 基本步骤,但是呢,现在的 g s 框架,比如 g curry, axus 等,提供了更简单和更强大的方式来处理二甲克斯请求,这些框架呢,封装了底层的二甲克斯操作,简化了代码和兼容性问题,并且呢提供了更好的错误处理和更丰富的一些功能。 在这里呢,需要大家注意的就是阿贾克斯发送请求的这个步骤呢,大家一定要记住,尤其是 open 和 unready state change 里面的 ready state 和 studios 这两个值,大家一定要记住, okay。
粉丝2522获赞1.4万

好,上节课咱们是讲到这个阿贾克斯发送请求啊,用的呢是叉 m l h d b d request 啊,但是呢这个呃请求现在是发出去没问题了,有一个小问题就是说我发请求的目的是什么? 哎,咱们发请求的目的是不是得到这个后台后端给咱们返回过来的数据啊? 对,所以说下一个问题就是怎么得到这些数据啊?那怎么得到这些数据呢啊?这个就得使用这个方式。就说啊 啊就说呃叫 ready state 的 change 啊 ready state 的 change 这是一个 什么呢?这是一个事件啊,叫做 x h r 的 on ready state change 啊,有这么一个 有这么一个事件啊,这个事件是什么呢?就是你看啊 on 就是当什么的时候啊,或者是在的意思啊,就在 ready 是什么意思?等待,因为你的请求发出去你就只负责等就行了,对吧? 是不是?哎你就等就行了。 today 就是等待状态对吧?等待的状态啊,然后接着称之是什么呀? 甚至就是改变啊,改变啊,就好像说这个 s n z 是 h r 是什么呀?是一个宋军出征的,就是宋 自己的丈夫出出征的这么一个妻子,对吧?啊那这个一旦送出去以后那么 你就只能等着,对吧?那等的话有有可能是什么什么呢?比如说出征就是战死,对吧?啊那这个就是就是什么?就是失败 是这意思吧?啊?那如果成功的话那成如果说成功的话是不是就有一些个就说阶段,比如说啊你的这个这个大军已经攻克这个敌军,对吧?这是一个啊攻克地方升职然后第第二个班师回城 对吧?啊第三个啊就是说呃卸甲归钱是这意思吧。啊 那同样的类似的啊就是咱们这个请求如果在失败的时候那没什么好说的这个就就不用管了但是成功的时候他有这么几个状态零一二三四啊有这么几个状态零是什么意思呢。零就是说刚刚出始化啊就是你刚拗完 啊你刚溜出来啊接着一是什么呢一是这个哎一是这个请求已经呃装载好数据明白吧啊请求已经呃装载好数据 啊因为这个 open 就是 open 了啊就是或者说就是也别装载好数字就是调用了调用了 open 方法但是还没发出去啊啊那这个就是什么呀就是东市买玩具嘛西市 买完安边是吧还是安三安间是吧好忘记了啊啊然后这个啊北市买什么啊啊对对对男士买商边是吧就这些东西已经准备好了啊 对不对整装待发啊然后二是什么呀二就是其实就是什么呢就是啊不是啊二的时候其实已经是打完仗准备回来了 来吧就说请求投。呃不是叫响应投啊响应投已经回来了就是说什么意思已经接收到战就是捷豹那个 就家里人已经知道打胜打胜仗了对吧但是人还没回来能理解吧哎那这个三是什么呢三就是说这个 这个不能说是人回来了。那那我举的这个例子不太恰当啊就说人就说这个响应已经接收到但是没有全部接收啊什么意思就说人回来了一部分 对吧但是人人还没有全回来啊哈哈哈这个这个就说实话我举的这个例子就是是这么一个问题明白吧。啊马回来了啊对马回来了啊可以啊可以啊啊然后四的时候就什么就是全回来了明白吧。啊但是 数据他可以分开人不能分开明白吧。你明白我意思啊就这个响应已经接收完毕啊接收完毕数据可以被使用了啊数据可以被使用了就说或者说你 把它理解为去拉货可以吧。啊就说零的时候哎我刚刚雇了一个货车一的时候啊我告诉了货车往哪走往哪开对吧啊去干什么啊然后接着二的时候就什么呀啊车头已经回来了对吧啊或者或者就说啊 挂式好挂式啊啊三是什么呀三是什么呀啊三就是车头这车整个已经回来了正在卸货明白吧。卸了一部分啊四就是什么呀卸完了啊货全都卸完了。 所以说在这个地方我们其实只关心什么我们只关心几四啊所以说在这里啊我们通常只关心只关心这个 四啊所以怎么办呢只判断几啊判断四就可以了啊这个事件啊这个事件这个事件啊事件他会在每一次状这个状态就是这个状态状态值啊切换的时候 啊切切换的时候干嘛呀啊触发一次也就是说这个事件会触发几次 啊。退出发四次啊零变一一次一变二一次二变三一次三变四一次四次 是吧。嗯我们通常只关心四所以我们只判断四啊。那我们 现在来输出一下啊输出这个叫做切换了啊切换了保存啊来刷新以后啊注意看啊。我这么一点,哎是不是只剩下三次啊有的说那不是四次吗啊这个其实就得 看这个状态了啊。零和一一是什么呀?一是调用了 open 方法,也就是说在你调用了 open 方法以后他状态就变成一了吧, 而他变成一的时候你有给他绑定这个事件吗?没有说他是不是监听不到啊。哎你如果想让他监听到怎么办你给他放前面去 能理解吧。哎你给他放前面去,那这种情况下哎刷新以后一点是不是几次四次啊,都是五十行输出的啊都是五十行输出的,所以说这种情况下他的他就能够接听到啊。那这 这样的话咱们这个也就说这一段在吗他其实放前面放后面差不太多啊,但是咱还是放前面吧啊咱还是放前面 好了。那这样的话就说这四次已经啊都监听到了。我们通常只关心四所以说我们一般怎么样只只只在四的时候啊 那就去做事情。那这样的话咱们得判断一下子。怎么判断呢?就是输出这个东西啊,叫 x x 的 ready state 啊,这个 x 有一个属性叫什么呢?叫 ready state。 这就是那个状态值啊就是那个状态值。刷新以后一点一二三四对不对啊。一二三四啊。零的话那监听不到没办法,因为你刚一出的话 大概就是多少啊。 console 点 log log x c 叉的 ready 准备的啊,保存啊,来一刷新一点就是几就是零啊一点就是零 啊。那这样的话咱们就是说如果 x x r 的 ready space 等等等于四对吧。哎那这时候说明什么呀?说明请求已经结束啊,就已经结束啊。那这样话我们要在请求里边干嘛呢?啊? 得到返回的数据啊,那返回的数据在哪里呢?在 x n x 的 re response tent 这个属性上啊,在这条属性上 response 是响应 tent 的,是文本,是不是 响应文本啊?啊?那输出这个 x h r 的 response technical 啊, technical。 哎, 行,那这样的话这个刷新之后一点一二三都都没有输出只有四的时候输出了一下返回的数据,那这样你看这就得到服务器给我们前端返回回来的数据了,对吧?哎,但是这个数据你看它是个什么格式 字不差,因为什么呢?因为就说前端是用用的语言是什么语言? gs 吧,后端用的语言是什么语言?谁规定只能是炸丸? 是不是都可能啊?对,有可能是 php, 有可能是加腕,有可能是 python, 有可能是咱们这个,这回咱用的是 note 服务器,明白吧。啊,那这样的话就有一个问题啊, 不同的语言之间怎么传递信息?比如说前端给直接给后端说,哎,我把我的数组给你,结果服务器那边一接过来一看傻眼了,我这边没有这种类型啊,对不对啊?那所以说这时候就得怎么办? 哎。找一个两边都认识的语言,都都都都认识的数据类型,对吧?那什么数据类型通用的对, 什么死语四座串。我问的是数据类型是通用的,能能理解吧。啊?你说哪个语言里边啊?除了一只电脑和四二三四以外啊。 除了除了这两个,这两个其实不能叫动态语言,能理解吧啊,但是一个是标签语言,一个是样式管样式的啊,所以说那个咱不管啊,那这个只要是这种动态语言啊,能运行的这种语言啊,他都里边都一定有字幕串吧? 对啊,所以说呢,前端和后端之间传递数据的时候用的是什么字?不差,所以说你看这是瑞斯 boss 什么, 这是都是有原因的啊。好了,那这样吧,下一个问题就是我怎么把这个四步串给转换成咱们前端的对象, 对吧?因为你看啊,你,你前端拿到这个以后啊,你从这个字幕串里拿到,我问一下,从这 这个图片里拿到这个,你好,这这一块数据怎么拿?截取吧,而且最麻烦的是什么?最麻烦的是你根本不知道,如果这次是请求失败了,那他给你返回个别的东西,你代码是不是得重写? 对,所以说用这种用字不串的方式很不友好,那怎么办?如果我能把这个东西格式化成咱们对象,是不是也很棒, 对吧?啊,就很棒,那这种情况下,咱怎么把一个字不串格式换成一个对象啊?当然前提是你这个你这个字不串的格式,你得是符合对象的,能理解吧。啊, 好,那这这个其实就是什么呀?就是后咱们已经通过一步的 g s 得到了什么,咱得到的不是叉 m l 是什么? jason, 明白吧? jason 这种数据格式叫做 jason 啊,这种数据格式叫做 jason, 也就是 jason 是个什么东西数据格式啊? jason 是个格式啊,就说只要符合 啊, jason 啊,就是只要符合 t 冒号 value 的这 value 的这样的格式啊,啊,那么就可以叫做 jason 啊,就可以叫做 jason 啊, 行,那这样话,而这个 jason 在咱们 g s 里边恰好就是什么呀?啊?而这个 jason 格式啊,在前端里恰好就是,哎,恰好就是数组合对象。 数组是不是 k, m 和 value 的格式?数组咱们在写的时候咱们不写 k, 对吧?但是你能不能理解数组它也是锁引对应成员的格式对吧? k m 和 value 嘛? 嗯,而 jason 格式在前端里恰好就是数足的对象,所以说呢,我们现在想办法将这个啊 jason 格式化成什么样对象啊?格式化成对象,因为数足也是对象啊, 那这样话,怎么把它格式化成对象啊?啊,在这里咱们就得介绍一个 e s 五里边的办法啊, e s 五中啊,其实是新增了一个 jason 这么一个对象 啊,新增了 jason 这么一个对象。这个对象有两个方法,一个叫什么呢? horse, 一个叫啊,是均反 啊。 pass 是什么意思呀?啊? 咱们那个 pass int 是什么意思来着?解,解析成数组,解析成整数,能理解吧?所以说 pass 是解析的意思。那 stringfine 是啥意思? stringfine 是字幅画啊,字幅画 啊,那这个说一下吧啊? jason 点儿 cars 啊,它的参数是什么呢?是一个字不串儿,是一个 jason 字不串儿啊,那么它的作用可以将 啊啊,这个参数字符串啊,那么这个转化成对象啊,转化成对象啊,那么 json 点咨询返,那这这个是个什么呢?这是一个 obj 啊,那么它的作用可以将什么呀?可以将 这个参数对象啊,把这个对象格式化,格式化成四步串啊,格式化成 jason 四步串, 那这样的话,咱们现在你看啊,这个东西它就是一个 jason super 串, 我现在要把这个 jason super 串 转化成一个对象,那怎么做? 用哪个方法呀? cars 啊,所以说这弯一个又就是因为 那这个东西啊,那就我就把这个 x z x r 的 respons tact 的给返回啊,不是给给解析,解析以后是不是得到一个结果,这个结果你得用一个变量来装吧啊?玩一个 o b j 啊,等于啊,那这样的话呢,我们就可以输出这个 o b j 啊,保存,那么来刷新以后一点,你看啊,上面还是个什么 super 串,下边就变成一个对象啊,就变成一个对象 好了,那这样的话我们就可以输出这个对象的 arrow, 这个对象的 data, 这个对象的 message, 你看啊,现在想要得到里边的这个数据是不是就对象的属性了啊,刷新一点 对吧?哎,这就得到了,那如果说后端给咱们返回一个叉 m 二格式的数据,那么我们只要掌握了把叉 m 二格格格式化成对线的方法,这不就可以了啊,但是那个方法太复杂咱就不讲了啊, 已经很多年没有人用了啊。行,那这样的话咱们现在就已经正式得到什么了啊?得到这个呃后端给返回的数据啊,对,顺便我在这里说演示一下这个 for, 我只演示这一遍啊 for 是什么意思来着? 同步对吧?好,那注意看啊,这个啊,我,我在这里还是这个处,然后怎么样啊? console log, 这 叫做,呃,我是,哎,我是一个大帅哥对不对啊,那注意看啊,咱们来看一看。点了,提交以后这个我是一个大帅哥,会在什么时候去输出? 什么时候没有?等这个请求回来吧。没有哎,也就是说请求刚一发出去他就怎么样了?哎,他就输出了, 对吧?哎,他就输出了啊,然后接着我再把这个地方换成 boss 啊,来吧。哎, boss 啊,保存。那注意看刷新以后一点提交怎么样?什么时候输出呢?请求 回来以后啊,结束以后。那这样的话,如果这个请求瞬间回来,那可能你用这个 boss 没什么感觉对不对?但是你能保证网络状况吗?不能,所以说咱还是怎么样啊,用数能理解吧。啊?用这个数 好了,那这样的话呢,这个阿贾克斯发送 get 进球咱们就说完了啊,那这样的话还是给大家一段时间啊。啊?二十分钟啊,二十分钟,练习一下这个啊,阿贾克斯发送 get 进球。

哈喽,大家好啊,今天学习的 gs 的阿贾克斯。阿贾克斯是阿贾克斯是什么呢?阿贾克斯是一种可以创建快速动态网页的一种技术,然后的话我们可以无刷新的对 网页的某些部分进行更新,嗯,是前后端分离的必备技术。然后下面我给大家写一下,在我们前端开发的时候会和后端进行配合,后端的话给我们提供了对应的接口, 然后我们可以请求对应的数据之后,然后在我们的前端页面进行渲染。 啊,要使用安达克斯的话,需要先给他创建一下, 然后我们用这个亚克斯给网页 发发起请求。发请求的方式可以有很多种啊,比如说可以用 get, 用 pose 的都可以,然后我们再用 get, 然后你要请求的网页在哪里?就是说后端提供接口,我这边找到一个接口可以用一下,这是返回一个引入的, 这边是请,这边是请求的请求的接口,然后的话如果你需要发送数据的话,你也可以 可以给他发送发送数据,不需要发送数据的话就直接填漏,那就行了。然后嗯,就是后端那边,嗯接受到你的请求, 有的话他那边就会吊用对应的毁掉函数。 然后的话如果我们请求的我们不是请求他吗?请求他如果是没有找到的时候,我们要考虑比较多的 状况,如果我们发生如果没有找到状态码的话,是得不到数据的,所以我们要确保就是状态码是两百的时候 才可以收到数据。然后嗯,那边的话后端要给我们响应吗?给我们响应,如果是他的响应已经完成的情况下才能获取 才能获取数据,然后的话,所以说还有还要加一个条件,这个等于四的时候才可以, 然后我们下面就可以输出一下,看我们是否获取到他给的数据了。呃,也是用这个对象这个接口,他是给我们返回的一个字母串,然后我们可以看一下。 嗯,他这边已经返回了,已经得到数据了,这就是我们前后端交互的一种形式,然后的话,呃,我们前后端交互的时候,有时候我们得到这个不是得到一个字母串吗?有时候如果我们得到这是一个,他会给我们返回一个节省 节省的支付账。借完支付账的话,我们前面不是写过信念化吗?要给他转换一下,然后转成对象的形式,然后把刚才写的那个给他放进去吧。然后 啊才可以把它转成对象吗?然后就可以根据我们前端学习的对象的方法,然后进行拿到数据之后就可以。嗯,使用了。嗯,这边他这边返回的支付串我就嗯这边给大家背注视一下吧, 我们这里还是简单的输出一下这个就行了。 嗯,好的,今天就先分享到这,然后呢还有什么问题可以在评论区讨论一下,我们明天再见。

我们再来看第五个眼神的问题,阿贾克斯的这个请求应该在哪个生命周期进行呢?那这是一个什么最最啊常见的一个面试题,阿贾克斯请求应该在哪个生命周期里运行呢? 这里有两个选择,一个是 creaty 的,一个什么 monty 的,但是我推荐大家用哪个 monty 的,但是这个推荐 monty 的仅限于什么?仅限于大家在什么浏览器端啊,进行这个盗墓操作的时候 啊,不是这个是什么? air ct 的时候,如果你想在浏览器端和什么服务端都用,建议大家在哪里?在 corrita 里啊,因为在服务端渲染的时候,只有 corriorty 的这个钩子,就没再有什么 monty 的这样的钩子了,因为在服务器端没有道路操作,所以呢,大家可以放在 crit 里啊,那么如果是你在浏览器端去开发应用,我们建议大家用哪个 monty 的, 先试上这两勾子都可以,为什么都可以呢?这是我们要回答面试官的,为什么都可以呢?好,我们再次什么打开那个 图啊,二和三都行啊,来,我们再次打开这张图,我们通过这张图呢来给大家做解释,是吧?大家看哈,我们这里边呢,有几个钩子,一个是 be for 啊,比 for creat, 一个是 creat 啊。那首先呢,我们来来听来来分析,我们为什么可以在 creat 里做,而不在 be for creat 里做呢?因为 creat 这钩子咋样? 可瑞的钩子,大家他能够读取我们的数据了,所以呢,你这个时候你可以去访问数据,是吧?啊,所以呢,这个钩子是可以的,那 mount 的主角的渲染完了,我们原则上也是可以做的,对吧?那这里有先后顺序了是吧?那我现在先问大家一个问题啊,什么问题呢?就是比方可瑞特,可瑞特的比方 mot, mot 这几个钩子是不是中间就是马不停蹄的去运行 是吧?比方说啊,比方 crit, crit, 比方 mot, mot 这几个钩子运行完了才十毫秒,比方说啊,这几个钩子运行完了才十毫秒,那十毫秒 完了以后呢?大家说我们是不是就是什么意思呢?就是我们在这个地方啊,遇见十毫秒,而我们的阿迪克斯请求是多少呢?至少是吧,一秒吧,大家说一秒跟十毫秒比的话呢,他的时间会很长很长很长。 所以呢,你在 monkey 做的时候或在 grid 做的时候呢,都无所谓了,因为你的阿点斯请求是义部的,他半天才回来,我们这个方法早就运行完了,所以你放到这和放到这都一样,因为那个一一那个什么请求的时间呢?这延迟太长了时间,所以啊,对于一个短时间和一个长时间来说的话,中间他俩的间隔就可以微乎其微,什么可以忽略了。 所以呢,就我们当前的这个艾亚斯请求来说,你既可以放在格瑞特这里,又可以放在 monta 里,推荐在浏览集团开发放在 monta 里啊,其实事实上大同小异,无所谓啊,那有同学会说,刚才你讲了,你可以在格瑞的勾子里面去读取类似,然后怎么样去修改数据,但事实上呢,这个工作是徒劳的啊,我们通过代码给大家演示啊, 什么意思呢?首先呢,我们来给大家模拟一个阿加斯请求哈,那我们需要去做一个阿加斯请求,我们还是在 home 里做,大家说我们在 home 啊,不是在这个啊 bus 里做啊, 假设说啊,我这个页面呢有一个 cont, 这个 cont 的话呢,我希望有个阿贾斯请求,请求我数了以后呢,我把这 con 的值再给他更新一下,对吧?那么接下来呢,我们就可以在这个代码里边去写个东西了。首先呢,我们可以在这个刚才的页面上啊,就写着 gs 代码是吧?做个义务操作模拟一个阿贾斯请求。那么我现在我们可以在 src 里面创建一个新的文件啊,比方说我们取名叫什么 有 tears 啊,下面呢,我们写一个叫做 data 啊。第二,什么 g s, 那在 data g s 里边呢,我们就编一个什么阿贾斯请求啊,一步返回的数据。那么我们现在写函数方式啊。 好,这个方式的话呢,我们叫什么?叫 get date, 比方说啊,这个函数我们要返回一个什么 promise, 又一个 promise 啊,好,这里呢会啥 resolve 是吧?还有 reject, 我们暂时不写了。 好,这里边呢,我们写个什么 set time out, 我们可以过多少呢?比方说过一秒或两秒以后怎么样去返回数据啊? ok, 我们要在这里头一秒,两秒以后怎么样返回数据?那怎么返回呢?我们要 return, 要瑞特是吧?不是瑞特啊,我们要 resolve, 我们要 resolve。 resolve 里面加啥呢?加我们的数哈,这数的话叫叫什么?比方说我们返回个两百是吧? ok, 我们就返回两百。然后呢,我们把这个代码暴露出去啊,我们直接是吧 export default 叫什么 get? 对的, 好,勾出去。以后呢,我们在这个地方干嘛?来进行返回,那返回的时候我们就要去什么导入是吧?我们叫导入 getty from, 也是当前目录下呢,我们上一层的什么 the tiles 有 tiles, 现在是给他啊。好,那拿到这个给给他以后,大家知道他是个 pro max, 那我们可以去请求一下试试了啊。来,咱们在两个钩子里请求第一钩子。 什么叫 befall mount 啊?比方,呃,比比方 creat 啊,不,比方 creat created 啊, 我们在 ctrl 里边怎样去?呃,调我们那个 air 层球啊,怎么调呢?大家看哈这里面执行什么?呃,用 excess 也可以,或者用 fact 也可以啊,我们可以使浏览器自带的 fact fact 点什么 get, 我们就请求数据,或者直接就范式什么数据就好了。这里我们写一个啥,写个 url 地址,这地址的话呢,应该就是啥?就是刚才我们看啊,看到那个地址是吧?啊,其实啊,我们也完全可以不用范式,直接什么,直接就调我们这个 get d, 它反反正反过来就是个一部曲啊, pro max, 对吧,这都是可以的哈,那假如说我们假装啊去调这个呃结果,然后怎么写? 这个 wait, 我们没有去见见服务啊,我们只是去叫个假的接口啊, wait 一个 get 得,假如它是个什么请求,它反过来是 pro max 对不对?好,接下来我们怎么样 let 一个 result 等它,然后结果呢?我们怎么样?结果回来以后,我们在 crit 里面我们能读取什么?等一下数据,我们去类似一下谁给它里边的这个啥 account 是吧?我们 list account 等于什么 result? 第二 result 的话就是啥,就是 cut 啊,就是这个结果了,好了, ok, 那么这个时间呢?是过几秒?过一两秒是吧?我们现在是过两秒是吧?好, ok 啊,来保存一下,咱们看实木生效啊。好,这里挂着错,说什么呢?说这个 result 啊,我们写 avat 是吧,我们写 a think。 保存一下,记得回到页面,我们刷新一下页面。好, ok, 这里还有错是什么呢?是可瑞的户口。可瑞的户口的问题啊,不是一个方程啊,说明说明这个有问题了,我们看一下哪里写的有问题啊? a created 没错, a wait 一个 get 啊,我们去调这个函数是吧。啊,不啊,他反,因为我们写的是函数吗?我们在外面哎,对,这个写错了啊,反的时候不要加括号啊。 好,等待一会啊,两就是两百是吧?我得改一下啊,跟跟多少呢?改成有人说两千跟两千啊,好了, ok, 现在我们就等待两秒,一二两秒以后变成两千,对吧。好,那么这些现在呢,我们来什么?关注一个问题哈, 第一个问题是 creat 的,我们是有机会怎么样的进行同步渲染的对吧?啊?进行同步渲染的什么意思呢?就是说我们可以在这里面如果是不做一步操作啊,我们写个啥叫做类似点 count 等于两千啊。好,然后呢,我们再去做个啥?再做个勾子叫做 update 的, 我们专门打印什么?这个 console 点 log 以下谁 this 点叫 cut update。 大家都知道是我们组件已经渲染完了,然后呢?你去改状态我们才打印的是吧?不改状态是不会打印的,那现在我们在这里边去调一下哈,来看他打印了没走,我发现呢,没打印这个什么 update 这句话没打印说明什么?说明 分就是从上到下就做了一次,那么我们是有机会给他改成多少呢?两千的是吧?这个 count 好像写的问题。呃,类似点 count 等于两千,然后我们打印的是 count。 没错啊,这个不是两千呢,怎么是两百呢?两百在哪在哪渲染的?我们在马赛里有时候渲染过一次啊,这个得改一下啊,这个不能因为马赛的话他又做了一次,我们删掉啊,来走 看两千,并且没有打印什么,哎。 updated 对吧,这是一个非常重要的一个信息,那么接下来呢,我们再来看,如果我们把这个去掉,把这个阿点斯请求啊,模拟的请求打开,我们再次去。什么渲染啊?来看一,一百两千。好, ok, 又打印两千,大家看到现在我们打印两千这个数打印了,说明什么? 其实说明啊,这个 updated 打印啊,来看一下我们再次刷新啊一二,大家看到白的是 updated 的两千 说明,哎,我们这个什么说明我们这个生存期的啊,更新的勾子乱了,那就说明,哎,我们是什么先已经 mont 完了以后又去改的数据,为什么这样呢?因为我们的爱克斯请求很慢很慢,两秒以后才回来,是吧?这个时候 monkey 的早就完成了,对吧?很快就完成了,你看哈这里边我们是不是打印 monkey 的 刷新早就完成了,然后呢?过了两秒以后才才过来,有的时候大家请求可能没那么慢,没那么慢的话,你一秒也受不了啊,你一百毫秒也受不了啊,因为我们代码的执行是非常快的同步的,是吧?从上到下,所以大家说我们这个函数放在哪里,放在 corrit 里边和放在 什么 motel 里边没什么两样啊,没什么两样,放在这,放这以后呢?大家看结果也是一百,什么?看 update 是不是也执行了?所以大家如果是想依赖于我们这个结果,在我们 cruit 里边去修改它以后,想做一次渲染是不可能的,因为我们这个按照请求是什么 晚于我们创建的,他会在下一个更新到我们的时候,或者是在更新状态的时候再次,是吧更新页面,所以我们的 update 才运行了。好,这是一个非常重要的指点啊,也就说 什么呢?呃,我们的这个案条请求可以在哪个工作里做呢?注意在这个 creative 和 mountain 里都可以,我们推荐在 mountain 里做,为什么呢?其实也没为啥,无所谓,因为在 creative 里面的 mountain 里都行。 那如果是这样角度来讲的话呢,我们是不是放在格局里比较合适?为什么呢?大家想想格局的话,在什么,在什么服段渲染的时候,就这一勾子,我们写了一句话,是不是两边都可以用啊?对了啊,所以就在一个场景同步的场景是吧?非同步的场景的话呢,我们就无所谓了。我们推荐使用什么 monty 的,因为在 monty 的时候呢,当我们已经渲染完了,你还可以在阿迪斯请求回来以后再啊去做个道。

hello, 大家好,阿加勒斯,全称是 e 步加入 script 和叉 m r, 是一种用于创建快速动态网易的技术,通过 后台与服务器进行数据交换,使网页实现一波更新。这也意味着可以在不重新加载整个网页的情况下,对页面的部分内容进行更新。 对比传统网页,如果不属于阿雅克斯,想更新内容的话就需要重载整个页面。好的,谢谢大家。

这个是我辅导的同学问的一个问题,怎么样通过浏览器来查看这个阿加克斯接口,他传了什么参数以及返回了什么参数,这应该是每个前端必备的技术知识。这个是他提供的网站,那么我们右键选择最后一个元素,那么我们这里面选择 novo, 那么默认这个地方是哦,对吧?咱们刷新一下访问这个页面,他所有的请求都在这个哦里面,那么这上面有几个标签页,比如说这个,这个是所有大家,可是请求这个是所有的 gscs, 这是图片的,这是视频文件,这是字体的,还有文档的,还有 ws 的,我也不烧给他的, 还有这个 wsm 的注册账号的时候接回了紧急信息,那么我点这个地方,我可以清空所有的接口,那么我点注册,然后我把它切到这个,这个地方啊可以查看 阿亚克斯请求,那么我随便梳一个东西,那我点注册啊,可以看一下,这个是我的接口,这个地方可以选择嗨点这个地方是我接口的名字以及我穿的参数,咱们可以看这个地方, 因为他这个信息是在嗨这里面穿的,他的类型是注册,他的油箱是填的这个,然后还有密码,还有扣的是空的, 你卧槽也是空的,这个是他当前的时间出,我们可以点这个配录的,那这个里面也可以看我发送这个请求, 这是盖的请求,然后他穿的参数,那么他的返回资,咱们可以点这个,这是他的返回资,他返回了三个阶段, datamasitsit, 那么他的这个信息就是邮箱已经存在,那么我们可以写一个邮箱,不存 地址,那么我这地方一定要选这个,你这样的话,他跳转的话,我可以监听到他上一个旅游的日子,我点注册密码小于六位数,那么同样呢,他也会返回这个信息,那么加上 再点注册, ok, ok, 点注册看到没有?那么这个是他会返回注册成功,这个是注册成功的信息,那么他这个其实返回是有问题的,就是他这个接口请求了多笔多次,就是这么看非常的简单。

ajax proxy 实际与 chromium 内核的浏览器插件,用于修改接口响应数据结果机。当我们在开发或者生产阶段需要验证一些异常或临界值时,或者需要在特定场景下做数据 mark 时, 它可以实现通过特定的请求规则去修改返回职来达到我们预期想要的结果,极大的增强了开发者的工作效率和网页端的使用体验。下面介绍一下使用方法。我们以 sweater 为例。 首先我们获取一个请求的连接地址, 点击浏览器上方的插件图标,可以看到当前我们这个页面已经可以操作了。 点击创建一条拦截规则,填写刚刚复制的链接地址,再响应数据,里面填写我们需要的数据,点击保存。这样我们再次请求这个接口,数据就已经被改变了, 试图上也会有对应被修改的次数提示, 插件基本的功能使用就到此为止了。如果喜欢本插件,不妨在 gt app 上给个星星, 感谢观看。

hello, 大家好,这一个小节我们来讲一下使用 fitch 函数来发送 ajax 请求。 这个废纸函数呢,是属于全局对象的,可以直接去断用啊,然后返回的结果呢,是一个 promised 对象,我们来演示一下。 好,谁的话呢,给这个按钮呢,绑定事件,然后点击按钮发送请求,我呢已经提前呢把元素获取到了,下边咱们开始绑事件, b t n 点 on click, 然后等于一个 function 好,发送请求时啊,直接调用 fit 函数,这个 fit 函数呢,接收两个参数,可以看一下,第一个呢是一个 url 啊,第二个呢是一个可选的配置项,注意是个可选的啊,然后呢,第一个参数呢,除了可以写 url 之外呢,还可以写一个 request 对象, 不过呢,这个 request 呢,现在处于一个实验阶段啊,所以说咱们这传 u r l 就 ok 了。然后咱们给这发请求呢,咱们准备呢,再来新建一个服务的路由规则, 然后把这个呢复制一份拿过来放下来,然后 excels 呢,把它换成啊,这个 fitch 服务, okay, 保存。然后这儿呢,咱们换一下,来一个 fitch 式 server。 好,然后呢,来在这块写,写上完整 u l 幺二七点零点零点一,冒号八千斜杠,然后 fitch 杠 server, 这是第一个参数啊,那么第二个参数的话,它是一个对象里边可可能可可以配置的属性。有这些 啊, method, headers 和 body 啊,请求方法,投信息和请求题。好,那么 method, 咱们加一下, 这是请求方法,来一个 pose 的请求方法,然后下边这个呢是请求头, 然后这会来一个 headers, 也是一个对象,然后 name 等于一个 at 硅谷, okay, 然后下边再来一个请求题,请求题这块儿的话,它是一个 body 属性,然后这个见值要注意啊,见值这块儿的话呢,你可以写什么呢?可以写 blog, 可以写 form data, 然后可以写 url search pyramid, pyramids 啊,就说这你可以写这种类型的一些对象,你也可以写呢。什么呀?字符串啊,咱们这呢就演示一下字符串的一个使用,我这写一个 youtube name 等于一个的命,然后按的帕斯 word 等于一个的命。好,我们来看看效果怎 怎么样。点开浏览器,刷新页面,点开 network, 然后点击发送请求,可以看一下啊,透视请求已经发出去,然后请求题这块呢,也已经有结果了,再看一看请求的投信息 啊,请求头 name and 硅谷也存在,那么这样的话呢,我们就把请求发出去了。行,这块可以修改, url 这块也可以修改,你要想配置 url 参数,可以呢,在 url 直接去坠 啊,咱们写一个 vip 等于一个这个十,然后呢刷新页面,然后再来点击看一下 vip 等于十,这个参数可以加上, 这样的话呢,整个请求报文当中任何位置你都可以设置,行头和体都没有问题。好,那么 下边的话,我们来看一看响应,响应呢,咱们说它的返回结果是一个 promised 对象啊,我们需要使用一个认方法来接收和处理它的一个结果。 用认的回调啊,用认的回调来处理结果。好, ctrl log 打印一下 response 保存,切过来,然后点开 ctrl, 然后发创新页面啊,然后点击一下, 看这个结果。有显现状态码,有显现状态支付串,还有呢这个投信息啊都有,然后这个请求,这个响应体, sorry 啊,这个响应体的结果获取啊,看一下, 我们不能够直接这样获取,我们该怎么办呢?我们可以这样来做, return 一下 response, 点 text, 它里边有个方法,点开这儿,点开这儿啊,然后 找一下,找一下这个方法,大家来看一下啊,这个方法的话在这呢啊,在这 啊有一个方法叫 text, ok, 就是它,然后呢我们调一下它,调完它之后呢,咱们再来一个任意方法, 这是 promise 的一个语法啊,在这里边我们使用 ctrl log 来打一下 response 保存,一起来看看这个结果。 点开浏览器刷新页面,点击可以看一下这个接口的话,我们就拿到了,如果说呢服务端返回接口呢,是一个接生,那我们可以呢把这个方法呢换成接生这个方法,他就会把这个数据帮我们解析成一个 gs 对象 啊,刷新页面,点击可以看一下,这是当前我们演示一下使用 fitch 函数呢,来发送啊, jack 请求,那么其实呢,我们在项目当中 使用的 xs 还是居多, fit 的话使用居少啊,不过我们以后的话,在见到 fit 函数之后呢啊,一定要知道这个也可以用来发送啊,价格请求。好,这一个小节我们就先到这。

我要对阿加克斯的并发请求做一个限制,我在发送的请求数上要做一个最大的允许值,并且我每一个请求都应该按照顺序。假如我现在是有 六个分片,那么我允许的最大的请求数是三个。我第一次进来同时发送三个阿雅克斯请求,我第一个阿雅克斯请求响应回来了,那我就开始发送第四个,对吧?这个时候如果第三个完成了,那么我就发送第五个,我的并发数最多只能是三个,那么具体怎么样实现呢? 这个方法我就说这个是所有的阿亚克星球,这个是他允许的最大并发数,假如说我这个可以传传三啊,对吧?我最大的并发数就是三,对吧?在这地方我先可露一个, 就是我要生成一个新的阿拉克对象,再一个呢,我这个地方是一个结果嘛?我结果相当于是我要促使化这个宿主的长度,也就说他总共有多少个阿拉克斯。还有一个判 判断所有的请求是否完成,那么我这里吗也定了一个数主,也就说他每一个元素都是零吗?然后这个时候我要算出来我最大的限制数目,对吧?这个对列就是放了所有的要发送的阿拉克的请求。那么首先呢,我要促使他对列吗?因为没有吗?对吧?我调用了这个方法, 传了一个我要发送的这个阿尔克斯请求的队列,他上来他是空的嘛?空的出口啊,这个相当于我是取一个,一个取嘛,对吧?可以看下这个方法,我要把所有的请求兵方说我要放到这个队列里面,对吧?嗯,这个是每一个阿尔克斯请求嘛?我要放到这个里面,对吧?这个是我要 同时出发的他的队列,我放了一个,他反问他的值,现在这个队列里面有多少个阿加克斯请求了?那么在这里面做了一个判断,也就说他的最大请求数不能大于他嘛,也就说小于他嘛,对吧?我放完之后,对吧?我,那么我要执行一次这个 request 嘛,对吧?这个 request 是啥呢?可以看下这个 request 方法,他其实就是 模拟一个请求,对吧?每天一个普方美食,对吧?然后呢他又来了一个定时器,这个定时器第二个参数他就是一个随机数,你可以看一下啊,现在是传过来的这个队列,对吧?我现在这个其实就是模拟请求吗?这时候我在这地方,我要打印了吗?我要请求这个 阿尔克斯了,我打印一下,开始请这个阿尔克斯,那么我什么时候返回呢?我在这像他们爱我的里面,我第一个,我返回了,我返回完了之后呢, 我要取这个阿加克斯,这个阿加克斯他的锁引嘛?因为 us 可能就是他嘛,他像克隆的一个,对吧?我第一个阿加克斯,他的锁引我要放到这个里面,这个里面,也就说这,这是有一个这个 数主,这个也就是记录我哪个阿加克斯已经完成了,也就说他记录他的顺序吗?也就是他第一个,那他的第一个,所以一,那对于这个两个星球,那么 s 蛋,也就是说这个,所以一完成了,那么我就把他的数改成一,因为这个数主他默认的都是零码,每个元素都是零码,比如他有总 是有六个请求,对吧?那他就是六个零吗?那么如果我这个完成了,那么因为他现在是取的这个锁引吗?对吧?这个这个两个请求,他肯定有一个锁引值吗?所以你直接就说我这个完成了,这个完成了之后怎么办呢?我要把那个对列出来嘛?因为有一个对列嘛,也就说这个对列里面永永远都有 这三个嘛,因为一开始我限制数就三个嘛,那么比如是他执行完了,对吧?他执行完了,对吧?他执行完了之后就非常简单,也就是说我要把它出吗?我要获取这个队列里面的 这个阿加克斯的这个,所以,对吧?所以我把这个队列给他清出去,清出去之后呢?怎么办呢?我要接着往下放嘛?我肯定要接着往下放嘛?我又调这个方法,我又往下放,对吧?也就说这个清出去了,那我肯定要把第四个放到第三个后面。 如果这个 uis 这个烂是等于零了,说明啥?说明也就是这个所有的这个都放完了吗?就是放完了之后,那么我还要判断,也就 说我所有的二两个请求,请求完了吗?对吧?如果请求完了,也就是说这个吗?所以他这个射程一说明请求完了吗?也就是说这个地方判断判断他没有零的,没有零的值了,说明都是一了吗?所以说他就相当于绕这个结果,这个结果是啥呢? 这个结果是啥呢?这个结果就是咱们的这个书谱,每一个书谱对应的这个所有的阿达克斯,所以说我们就调用一下,比如说我现在是定了九个阿达克斯,对吧?最大的请数是三,可以看一下他打印的一个结果。刷新一下。啊,一开始放了三个嘛?这时候第三个完成了,那么就开始放第四个。 第二个完成了,我开始放第五个,相当于我总共响应时间用了八秒多。这地方有个点是需要注意的,他一开始是放了这三个阿达克斯,对吧?有可能第三个先完成,这时候把第四个进来,第四个进来之后,他有可能第四个完成,这时候他放第五个。啊,大家有没有更好的方案?如果有更好好的方案,欢迎评论区留言。
