На HN обговорюють, як прискорили завантаження Вікіпедії на 300 мс. Якщо вам ліньки читати, то коротка версія така: там код на жсі пробігався по купі елементів, щоби навісити хендлери — і цей цикл виходив дуже довгим. В одному випадку вдалося просто видалити код, в іншому замінити на делегацію подій.
Але поговорити мені хочеться за інше: частина обговорення пішла про те, що Вікіпедія (та й сам HN) швидше грузяться для анонимів, аніж для залогінених користувачів. Бо анонімам віддається кешована сторінка, а для користувача треба відрендерити персональну сторіночку. Бо там ім’я користувача є, всіляки лайки/апвоти, ну короч, все як завжди.
З однієї сторони, хочеться, щоб всі були залогінені. З іншої — воно ж додаткового навантаження генерує немало. Неприємно, так?
Є кльовий підхід: віддавати всім версію для анонімних користувачів, а потім, коли вже все завантажилося, всілякі LCP пройшли і користувач дивиться на сайт, догружати кастомізації для залогіненого користувача. Це, очевидно, потребує деяких жертв — щоби верстка була схожа і не було зсувів та значних візуальних змін, щоби основний контент не залежав від користувача… Але якщо ці умови виконати, то відкривається дивний світ різкого зниження навантаження на сервер. :)
На Касті таким чином підгружаються хедер і вподобайки на товарах, і ніхто того взагалі не палить. :)