this post was submitted on 26 Apr 2024
5 points (85.7% liked)

Web Development

3430 readers
1 users here now

Welcome to the web development community! This is a place to post, discuss, get help about, etc. anything related to web development

What is web development?

Web development is the process of creating websites or web applications

Rules/Guidelines

Related Communities

Wormhole

Some webdev blogsNot sure what to post in here? Want some web development related things to read?

Heres a couple blogs that have web development related content

CreditsIcon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 2 years ago
MODERATORS
5
submitted 7 months ago* (last edited 7 months ago) by [email protected] to c/[email protected]
 

Hi,

I discovered this webpage
https://developer.mozilla.org/en-US/docs/Glossary/XMLHttpRequest

Where it say

The Fetch API is the modern replacement for XMLHttpRequest.

Without further explain on why so...

Did you (yourself) migrated from XHR to The Fetch API ? and is it better ? or do you know any (not bias) article about it ?

What about performances etc..

Thanks

cross-posted onhttps://lemmy.world/post/14707833

top 5 comments
sorted by: hot top controversial new old
[–] [email protected] 8 points 7 months ago* (last edited 7 months ago) (1 children)

XHR is absolutely ancient. Like, I used it on Internet Explorer 6 era websites. Using a 3x3 table with images in all 8 outer cells to make rounded corners.

It still works but is so old it can't really be updated. It's entirely callback driven so no async. It's not even async by default if I recall correctly, it just hangs the browser.

The Fetch API was designed to modernize what XHR does, and does so well. Now, a simple get request you can pretty much await fetch(...) whereas the XHR one is probably 20-40 lines of code and most people end up using a library to deal with it, or write their own little wrapper for it. It supports promises natively.You can stream very large files without loading it all in memory. There's nothing XHR can do that fetch can't do, and usually does it better too. For most use cases the performance will be the same, network IO is orders of magnitude slower than JavaScript execution. But the API being better probably does lead to better performance by not doing unnecessary things and possibly processing data as it arrives instead of all in one go when the download is finished.

It's a modern replacement because it's literally what it was designed to be. Try both and it'll be abundantly clear why.

[–] [email protected] 0 points 7 months ago (1 children)
[–] [email protected] 3 points 7 months ago

Sure it let's you use it asynchronously, but it predates and is not really compatible with JavaScript's async/Promise API.

[–] [email protected] 1 points 7 months ago

I think of XHR as more of a low-level API. Most of the time though you don't need access to those low-level details.

The fetch API is bit higher level and nicer to work with.

[–] [email protected] 1 points 7 months ago

Also, you can use Wretch for a really neat builder pattern to make requests.

https://elbywan.github.io/wretch/