It’s easy to forget, when you’re working with a muscular desktop machine loading resources locally, that there are end-user constraints. This becomes much more important to keep in mind when you’re planning to deploy to mobile users.
Portable devices are not dedicated gaming systems with a massive GPU that do things like image manipulation without breaking a sweat; and they are coded to force apps to terminate when they begin to invade active system space.
If a handheld user has several high priority apps running in the background (and most do, without realizing it), such as mail, calendars, and schedulers, well, the system might well have to kill something, and it’s likely to shoot down the lower-priority targets first.
A webpage is a lower-priority target.
Try to be conservative in what you expect your users’ machines to be able to handle; never assume anyone on the home-user level is running with a 27" screen, 8 GB VRAM, a paired quad-core processor, and 32 GB RAM; and at the very least, remember that many handheld users are charged for bandwidth.
No one running a handheld needs to see a native 30 MP image.
Don’t push more data than is strictly and absolutely necessary. And use apps such as Hype Reflect to preview your site before it becomes a just-before-my-boss-sees-it problem.