See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 11130|Vastuse: 2

[JavaScript] Ajaxi, Axiose ja toomise

[Kopeeri link]
Postitatud 16.05.2019 13:28:28 | | | |
1.jQuery ajax

Traditsiooniline Ajax viitab XMLHttpRequest(XHR) tehnoloogiale, mis oli varaseim taustapäringute tehnoloogia, mis ilmus originaalses js-is, ning tuum kasutab XMLHttpRequest objekti.

JQuery ajax on natiivse XHR-i kapseldus ja lisab JSONP toe. Pärast aastaid kestnud uuendamist ja hooldust on see tõesti väga mugav ning eeliseid ei pea mainima; Kui sa nõuad mõne puuduse loetlemist, võib see olla ainult järgmised:

1. See on programmeerimine MVC-le, mis ei vasta praegusele esi-end MVVM-i lainele
2. Natiivse XHR-i arenduse põhjal ei ole XHR-i arhitektuur selge.
3. Kogu JQuery projekt on liiga suur ja on väga ebamõistlik tutvustada kogu JQueryt ainult ajaxiga (kasutades isikupärastatud pakendamislahendust ja mitte nautides CDN-teenuseid).
4. See ei vasta huvide lahususe põhimõttele
5. Konfiguratsioon ja kutsumine on väga segased ning sündmuspõhine asünkroonne mudel ei ole sõbralik.

PS:MVVM(Model-View-ViewModel), 源自于经典的 Model–View–Controller(MVC)模式。MVVM 的出现促进了 GUI 前端开发与后端业务逻辑的分离,极大地提高了前端开发效率。MVVM 的核心是 ViewModel 层,它就像是一个中转站(value converter),负责转换 Model 中的数据对象来让数据变得更容易管理和使用,该层向上与视图层进行双向数据绑定,向下与 Model 层通过接口请求进行数据交互,起呈上启下作用。View 层展现的不是 Model 层的数据,而是 ViewModel 的数据,由 ViewModel 负责与 Model 层交互,这就完全解耦了 View 层和 Model 层,这个解耦是至关重要的,它是前后端分离方案实施的最重要一环。

Nagu näidatud järgmises joonises:




2.aksios

Pärast Vue2.0 soovitas You Yuxi sul asendada JQuery ajax Axiosega, mis pidi paljude inimeste silmadesse panema Axiose.

axios on HTTP-klient, mis põhineb Lubaduste brauseritele ja noDEJ-dele, mis on sisuliselt natiivse XHR-i kapseldus, kuid see on lubaduste rakendus, mis vastab uusimatele ES-i spetsifikatsioonidele ning omab ise järgmisi omadusi:

1. Loo oma brauserist XMLHttpRequest
2. Support Promise API
3. Klienditugi takistab CSRF-i
4. Pakkuda mõningaid liideseid samaaegseteks päringuteks (oluline ja palju mugavam töö)
5. Loo HTTP-päring node.js
6. Päringute ja vastuste pealtkuulamine
7. Taotluste ja vastuste andmete teisendamine
8. Taotluse tühistamine
9. JSON-andmete automaatne teisendamine

PS:防止CSRF:就是让你的每个请求都带一个从cookie中拿到的key, 根据浏览器同源策略,假冒的网站是拿不到你cookie中得key的,这样,后台就可以轻松辨别出这个请求是否是用户在假冒网站上的误导输入,从而采取正确的策略。

3.too


Fetch on reklaamitud alternatiivina AJAX-ile, mis ilmus ES6-s ja kasutab lubaduse objekti ES6-s. Fetch on loodud lubaduste põhjal. Fetchi koodistruktuur on palju lihtsam kui ajax-il ja parameetrid on natuke nagu jQuery ajax. Kuid kindlasti pea meelesFetch ei ole AjaX'i täiendav kapseldamine, vaid natiivse JS-i ning ei kasuta XMLHttpRequest objekti

Toomise eelised:

1. Järgida fookuse eraldamist ja mitte segada sisendid, väljundid ja olekud, mida jälgivad sündmused ühes objektis
2. Parem ja mugavam viis kirjutamiseks
Ausalt öeldes ei ole ülaltoodud põhjused mulle üldse veenvad, sest nii Jquery kui Axios on aidanud meil xhr-i piisavalt hästi kapseldada ja on piisavalt lihtsad kasutada, miks peame ikkagi palju vaeva nägema, et õppida toomist?

Ma arvan, et toomise peamised eelised on:


1. Süntaks on lühike ja semantilisem
2. Standardse lubaduse rakendamise põhjal toeta asünkroonne/ootamine
3. Isomorfne mugavus, kasutades [isomorfne-toomine](https://github.com/matthew-andrews/isomorphic-fetch)
4. Rohkem alumist tasandi, pakkudes rikkalikke API-sid (päring, vastus)
5. XHR-ist lahkumine on uus rakendus ES-spetsifikatsioonis
Viimasel ajal, kui kasutan fetch'i, olen samuti kohanud palju probleeme:
Fetch on madala taseme API, mida võib mõelda kui natiivset XHR-i, seega pole seda mugav kasutada ja see vajab kapseldamist.
Näiteks:


1) Fetch teatab ainult võrgupäringute vigadest ning käsitleb 400 ja 500 taotlusi edukatena ning server ei lükka tagasi, kui tagastatakse 400 või 500 veakoodi.
2) Fetch ei kanna vaikimisi küpsiseid, pead lisama konfiguratsioonielemendi: fetch(url, {credentials: 'include'})
3) fetch ei toeta katkestust, ei toeta ajapiirangu kontrolli ning setTimeout ja Promise.reject poolt rakendatud ajapiirangukontroll ei suuda takistada päringuprotsessi taustal töötamist, mis põhjustab raisatud liiklust
4) fetch-il puudub võimalus päringute edenemist natiivselt jälgida, samas kui XHR-il on see võimalik
Kokkuvõte: Axios pakub samaaegset kapseldamist ilma toomise probleemideta ning on väikese suurusega, muutes selle praegu kõige sobivamaks päringumeetodiks.




Eelmine:Pure CSS3 kaunistab raadionuppe
Järgmine:BIO ja NIO mõistmine
Postitatud 17.05.2019 18:16:39 |
Õppinud,
 Üürileandja| Postitatud 20.02.2025 10:08:01 |
Natiivse XMLHttpRequest päring

SAADA






POST



Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com