With the help of AJAX we now use lazy loaders in our websites. The advantage of lazy loading is that we can load the resources when we need them rather than having them around all the time. Using this technique, we can boost up the website's loading time and stay under the user's data cap. For example, we don't have to load large images in mobiles that are intended for the desktop version, and we don't have to load scripts on Android devices if it's only meant for iOS.
JavaScript is good at testing for support and then loading resources on demand. However, we don't use it properly. At the moment, we use more and more solutions that load large amounts of high-end resources because we assume that caching will improve the experience as the user moves through the site. Actually, this is a waste of time as it doesn't help the users who will never benefit from that high-end experience. It might not seem to be a problem for people who have a fast connection. However, we...