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.
|