I have a single-page website that is a calendar that is a full year's worth of images. The page load has 344 requests and 20MB total load. It's a simple PHP page without a database.
The requests include a CSS file (15KB), 4 JS files (20KB), two fonts (50KB), a video (3MB) and the rest are images. The max image size is 400x200 (139KB) but the majority are 200x400 (30KB). The images currently load as CSS backgrounds, but could be loaded as if it helps.
The files will be hosted on a cloud-based CDN. The page is optimized as much as it can be to not block the DOM from being loaded. The images are the main issue, IMO.
What is the best way to load this page's images?
I have tried lazy load, but the problem with that is it really kills the browser when it redraws and reflows. I have removed a bunch of bells and whistles like CSS3 styles, animations and others due to redraw/reflow issues as well.
The current options I can think of are an infinite scroll that loads each month before it's inview or break up each month into their own pages. I'd rather not go with the latter if possible.
There are a few questions similar to this on Stack but none that pertain to my situation. Thanks in advance for your recommendations.