Значит ли, что с переходом на HTTP/3 (HTTP/2) не нужно будет паковать все js-файлы в один бандл?
HTTP следующих поколений могут агрегировать запросы, уменьшать кол-во и пинг в запросах, ну и еще куча магии. Значит ли это, что, поддерживая только HTTP/2 и/или HTTP/3, можно будет, грубо говоря, отказаться от вебпака и перейти на ES модули?
А префетч кто то отменял?
Протокол нижнего уровня не знает о поведении на более высоком. И сервер отдает ровно то что запрошено, и никакой магии нет. Пришел файл, распарсился, браузер сказал мол мне нужно еще что то, запрос ушел.
Вообще-то, в воздухе витает дебильная идея о том, что если клиент просит HTML-страничку, то сервер должен сразу (без запроса от клиента) выдать ему заодно все картинки, которые упомянуты в этой страничке, а также все странички, куда можно перейти с этой странице по клику мышкой.
Я сказал "дебильная" - ибо это сразу убьёт напрочь весь эффект кэширования: картинки будут пихаться клиенту независимо от того, есть ли они в кэше клиента.
Karpion, как быть с бесконечной лентой где картинок море, хотя отображается максимум 2-3, а остальные грузятся по мере надобности. Или динамическими бандлами?
Владимир Коротенко, То, что идея "дебильная" - я написал выше. Но ведь витает; впрочем, там витает много других дебильных идей, и многие даже реализуются.
С бесконечной лентой - сервер должен определить, какие картинки прислать сразу. Я думаю, если посмотреть устройство этой ленты, то станет ясно, что надо присылать сразу: в этой идее просто парсится HTML на стороне сервера.
С динамическими бандлами - наверно, ничего присылаться заранее не будет, ибо бандлы формирует JS, а не простой HTML.
Karpion, лента в общем то тоже формируется динамически. Отдельный вопрос зачем сервер должен знать и парсить контент. Это нарушение всех принципов изоляции.
Вероятно, бандлы станут чуть менее актуальными (т.к. да - в одном запросе клиент (браузер) сможет запросить сразу кучу картинок, например, или кучу отдельных js-файлов). Но вебпак уйдёт очень не скоро - он же не только пакует код в бандлы - он ещё исправляет код (babel-ы всякие там работают), оптимизирует css (всякие там препроцессоры запускает - less, scss), готовит svg (иконки) и другие процессы производит.