Summary
In the past, every browser's vendors had custom DOM implementations that were largely incompatible. However, this has changed, and we have W3C DOM well supported among browsers at least for a decade. Today, we can safely use JavaScript native API to access, manipulate, and style the DOM.
In JavaScript, XHR is still the main API to communicate between a client and a server. It's not quite developer friendly though. So, we usually write custom wrappers for it.
However, a new API called Fetch is proposed and already implemented in Chrome, Firefox, and Opera. This new API is much easier to use, and compared to XHR, it provides a more impressive and flexible features.