1.jQuery ajax
Perinteinen Ajax viittaa XMLHttpRequest(XHR):iin, varhaisimpaan taustajärjestelmän pyyntöteknologiaan, joka esiintyi alkuperäisessä js:ssä, ja ydin käyttää XMLHttpRequest-objektia.
JQuery ajax on natiivin XHR:n kapselointi ja lisää tukea JSONP:lle. Vuosien päivitysten ja ylläpidon jälkeen se on todella kätevä, eikä etuja tarvitse sanoa; Jos haluat luetella muutamia puutteita, se voi olla vain seuraavaa:
1. Se on ohjelmointia MVC:lle, joka ei vastaa nykyistä front-end MVVM:n aaltoa 2. Alkuperäisen XHR-kehityksen perusteella XHR:n arkkitehtuuri itsessään ei ole selvä. 3. Koko JQuery-projekti on liian suuri, ja on hyvin kohtuutonta esitellä koko JQuery pelkästään ajaxilla (ottamalla käyttöön personoitu pakkausratkaisu ilman CDN-palveluita) 4. Se ei noudata osapuolten erottelun periaatetta 5. Konfiguraatio ja kutsuminen ovat hyvin sekavia, ja tapahtumapohjainen asynkroninen malli ei ole ystävällinen.
PS:MVVM(Model-View-ViewModel), 源自于经典的 Model–View–Controller(MVC)模式。MVVM 的出现促进了 GUI 前端开发与后端业务逻辑的分离,极大地提高了前端开发效率。MVVM 的核心是 ViewModel 层,它就像是一个中转站(value converter),负责转换 Model 中的数据对象来让数据变得更容易管理和使用,该层向上与视图层进行双向数据绑定,向下与 Model 层通过接口请求进行数据交互,起呈上启下作用。View 层展现的不是 Model 层的数据,而是 ViewModel 的数据,由 ViewModel 负责与 Model 层交互,这就完全解耦了 View 层和 Model 层,这个解耦是至关重要的,它是前后端分离方案实施的最重要一环。
Kuten seuraavassa kuvassa näkyy:
2.aksios
Vue2.0:n jälkeen You Yuxi suositteli, että korvaisit JQuery Ajaxin Axiosilla, mikä varmasti sai Axiosin monien ihmisten silmissä.
axios on HTTP-asiakasohjelma, joka perustuu Promises-ohjelmaan selaimille ja nodeJS:lle, eli käytännössä natiivin XHR:n kapselointi, paitsi että se on promises-sovellusten toteutus, joka täyttää uusimpia ES-määrittelyjä, ja sillä on seuraavat ominaisuudet:
1. Luo XMLHttpRequest selaimestasi 2. Support Promise API 3. Asiakastuki estää CSRF:n 4. Tarjoa joitakin rajapintoja samanaikaisille pyynnöille (tärkeä, paljon kätevämpi käyttö) 5. Luo HTTP-pyyntö node.js 6. Sieppauspyynnöt ja vastaukset 7. Muunna pyyntö- ja vastaustiedot 8. Pyynnön peruuttaminen 9. Muunna JSON-data automaattisesti
PS:防止CSRF:就是让你的每个请求都带一个从cookie中拿到的key, 根据浏览器同源策略,假冒的网站是拿不到你cookie中得key的,这样,后台就可以轻松辨别出这个请求是否是用户在假冒网站上的误导输入,从而采取正确的策略。
3.hae
Fetch mainostetaan vaihtoehtona AJAXille, joka esiintyi ES6:ssa ja käyttää lupausobjektia ES6:ssa. Fetch on suunniteltu lupausten pohjalta. Fetchin koodirakenne on paljon yksinkertaisempi kuin ajaxin, ja parametrit ovat vähän kuin jQuery ajax. Muista kuitenkinFetch ei ole ajaxin lisäkapselointi, vaan natiivi JS eikä käytä XMLHttpRequest-objektia。
Noudon edut:
1. Noudata tarkennuserottelua, äläkä sekoita tapahtumien seuraamia syötteitä, lähtöjä ja tiloja yhdessä objektissa 2. Parempi ja kätevämpi tapa kirjoittaa Rehellisesti sanottuna edellä mainitut syyt eivät ole minulle lainkaan vakuuttavia, koska sekä Jquery että Axios ovat auttaneet meitä kapseloimaan xhr:n tarpeeksi hyvin ja ovat tarpeeksi helppokäyttöisiä, miksi meidän täytyy silti käyttää paljon vaivaa noutotekniikan oppimiseen?
Mielestäni noudon tärkeimmät edut ovat:
1. Syntaksi on tiivis ja semanttisempi 2. Perustuen standardin lupauksen toteutukseen, tue asynkronisoitua/odota 3. Isomorfinen mukavuus, käyttäen [isomorfista hakemista](https://github.com/matthew-andrews/isomorphic-fetch) 4. Enemmän pohjatasoa, monipuolisia API-rajapintoja (pyyntö, vastaus) 5. Irtautuminen XHR:stä on uusi toteutus ES-määrittelyssä Viime aikoina, kun käytän noutoa, olen myös kohdannut paljon ongelmia: Fetch on matalan tason API, jota voi ajatella natiivina XHR:nä, joten se ei ole kovin mukava käyttää ja se täytyy kapseloida. Esimerkiksi:
1) Fetch raportoi virheitä vain verkkopyynnöistä ja käsittelee 400 ja 500 onnistuneina pyyntöinä, eikä palvelin hylkää 400- tai 500-virhekoodeja. 2) Fetch ei kanna evästeitä oletuksena, sinun täytyy lisätä konfiguraatiokohde: fetch(url, {credentials: 'include'}) 3) fetch ei tue keskeytystä, ei tue aikakatkaisun hallintaa, ja setTimeoutin ja Promise.reject toteuttama aikakatkaisukontrolli ei voi estää pyyntöprosessin jatkumista taustalla, mikä johtaa liikenteen hukkaan menehtymiseen 4) Fetchillä ei ole mahdollisuutta valvoa pyyntöjen etenemistä natiivisti, kun taas XHR:llä on mahdollisuus Yhteenveto: Axios tarjoaa samanaikaisen kapseloinnin ilman nouto-ongelmia, ja on pienikokoinen, mikä tekee siitä nykyään sopivimman pyyntömenetelmän.
|