Разбор пытанняў з рэальных сумоўяў - JS Network. Адрозненне fetch і XHR (XMLHttpRequest)?
Пытанне:
Чым адрозніваецца fetch і XHR (XMLHttpRequest)?
Кароткі адказ
-
fetch- працуе на промісах,XHR- працуе на callbacks -
fetch- асінхронны,XHR- сінхронны і асінхронны -
fetch- нельга адмяніць,XHR- можна -
fetch- патокавая праца с данымі,XHR- увесь адказ кешыруецца ў памяці -
XHR- можам адсочваць працэсс загрузкі даных на сервер
Падрабязны адказ
-
fetch- працуе на промісах (пазбаўляемся адcallbacks hell),XHR- працуе наcallbacks -
fetch- асінхронны,XHR- сінхронны і асінхронны
text1// стварэнне сінхроннага і асінхроннага запыту з дапамогай XMLHttpRequest 2// ствараем новы аб'ект XHR 3var xhr = new XMLHttpRequest(); 4// дадаем канфігурацыю запыту 5xhr.open(method, URL, [async, user, password]) 6// async можа быць false - запыт ажыццяўляецца сінхронна, true - запыт асінхронны
fetch- нельга адмяніць,XHR- можна
Для адмены XHR трэба выклікаць метад abort
text1xhr.abort()
У самім fetch няма магчымасці адмяніць запыт, але можам выкарыстаць іншы ўбудаваны аб'ект AbortController.
-
fetch- струменевая праца с данымі,XHR- увесь адказ кешыруецца ў памяці -
XHR- можам адсочваць працэсс загрузкі даных на сервер (аб'ектxhr.upload),fetch- не мае такой магчымасці
Каментары
(Каб даслаць каментар залагуйцеся ў свой уліковы запіс)