Там, където се спъвах, бяха презарежданията на страниците и начина, по който се държат по различен начин.
Нека разделим случаите на употреба на две:
1. Посещение на страница: просто преминаване към вече посетена страница.
Тук виждам това, което виждате и вие: по-голямата част от съдържанието се извлича от кеша. Chrome го показва по-добре от Firefox/Firebug. Firebug просто не показва попадения в кеша в мрежовия панел.
2. Редовно презареждане на страницата.
Почти всички браузъри имат два преки пътища за опресняване на страница: редовно презареждане (Ctrl+R в Chrome/Windows) и презареждане, игнориращо кеша (Shift+F5 в Chrome/Windows). Говоря за редовно презареждане, тъй като ако кешът се игнорира, няма какво да се обсъжда.
Това, което изглежда се случва, е, че браузърът издава заявки If-Modified-Since за всички ресурси на страницата. След това сървърът отговаря с 304 Not Modified за статични ресурси и браузърът ги получава от кеша.
Проблемът е, че ние не обработвахме If-Modified-Since в нашите услуги. Ние просто задавахме Cache-Control с възрастта на изтичане.
Актуализацията на кода на сървъра, която започна да обработва If-Modified-Since, реши проблема.
Между другото, ето една основна статия за кеширането на браузъра, която намерих за доста полезна: https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers
person
DKroot
schedule
31.07.2014