Comments 94
Оказывается чего только не придумают. А я то думал что в обучении SCORM формат (зазипованный сайт открывающийся в айфрейме) это дно. А тут вон ещё сильнее закрутили.
Но на самом деле мне кажется, что это задачка нереальная, потому что отвалится вся система кеширования (картинок, js, css). Такой рост объема данных «интернет» просто не переварит.
Если я заблуждаюсь — поправьте меня пожалуйста.
Кэширование не отвалится, потому что обращение к ресурсу в бандле выполняется на более низком уровне, подменяя запрос по сети.
Но Гугл активно пропихивает AMP и тут бандлы ему очень пригодятся. А в дальней переспективе, вполне возможно, планирует вырастить из AMP конкурента Cloudflare.
WebBundles на сколько я понял загружает весь сайт целиком за раз как один файл. AMP же вроде наоборот откладывает загрузку ресурсов страницы(изображений например) до момента когда они понадобятся.
Да, CDN это не убьет, но переконфигурить все придется основательно. Плюс часть функций вроде файрволла станут бесполезны, наверное. Ведь пользователь уже не сможет рандомно обшаривать локации на сайте.
Сейчас cloudflare и браузер можешь закешировать вот такие запросы:
dr.habracdn.net/habr-web/js/chunk-vendors.c83286b7.js
Сервер Хабра отдает один раз.
Сервер CDN кеширует статику.
Браузер скачивает этот js chunk 1 раз.
Следующая версия будет скачиваться, когда выкатится новое обновление этой страницы. Ну допустим раз в день. Если я зашел и прочитал 5 статей, то я скачал один раз, а не 5.
А еще сервер хабра отдал 1 раз, CDN закешировал и отдал пользователям 1 млн раз.
А если пихать это все в архив, то пользователи скачают 3-5 млн раз этот JS chunk.
И этот объем придется отдавать серверу.
Поэтому я не очень понимаю, как вообще это все можно провернуть.
Тысячи и миллионы сайтов рассчитаны на то, чтобы кешировать статику и делают это на разных уровнях: сервер, nginx, CDN, браузер, etc.
Как отказаться от этого кеширования в вебе — я не понимаю.
При повторной загрузке страницы загружает
116kB из 6.9MB
Это 1,5%
Для новой статьи (которую я еще не читал) загрузилось со всеми картинками 800kB из 6.8MB
Это 11%
Оставшиеся 89% — это кеш.
Ну и возвращаясь к опере мобайл, она показывала снижение трафика в несколько раз даже при посещении одного и того же сайта.
У меня в библиотеке хранится учебник по Эсперанто в .chm
формате. Это удобно исключительно для offline-просмотра. В живом интернете я бы эту мерзозть видеть не хотел
Еще хуже то, что этому движку сейчас нет внятных альтернатив, потому что даже Microsoft уже как два года «пристрелили и закопали» свою стюардессу EdgeHTML, перейдя на Chromium.
Резво автор похоронил Mozilla с их Gecko.
В то же время, есть отдельные люди, какие пишут патчи, и отдельные люди, какие собирают программы, хотя иногда это одни и те же люди. Они сами между собой будут решать, что и как сделать, вам же погружаться в их работу, для того чтобы понять что они делают не обязательно.
Ну и по большому счету, 2-3% у всех лисоподобных — это на уровне статистической погрешности
Ну есть ещё поисковики, которые даже контент, генерируемый JS, толком не умеют индексировать. А тут нате вам ещё один новый стандарт.
Мне кажется у этой идеи есть потенциал в ускорении передачи данных от веб-сервера браузеру.
Так а в чем ускорение? Http2 и так сделал бесполезным бандлирование и огромные картинки, которые надо разрезать на клиенте
Примерно в этом же концепте шел, например, cloudflare — он перешифровывает весь трафик, добираясь до реальных данных и, анализируя их, выявляет атаки. Хоть мне и не нравится такой подход у cloudflare, но, признаю — он дает больше простора для выявления атак.
Впрочем, если учесть, что нынешние сайты — это зачастую статичный фронтенд к API и вся логика тянется в браузер пользователя — возможно логика в этом есть.
Связь WebBundle с борьбой с адблокерами очень натянута. Да, для рекламы удобно использовать WebBundle, т.к. реклама — это html + js/css/img ресурсы. Но WebBundle не позволяет прятать url — сам бандл всё равно будет загружаться с рекламных доменов, которые можно блокировать так же, как они блокируются сейчас. К тому же перед тем, как реклама загрузится — сначала нужно загрузить рекламный скрипт на самой странице, который опять же блокируется блокером.
Так можно же на бэке склеить всё вместе с рекламой в один бандл и отдать в браузер уже готовое.
Но тогда отвалится весь ретаргетинг, который опирается на куки на стороне клиента.
Да, можно. Я об этом тоже упомянул тут. Но подход, который вы описываете не требует бандлов. Это можно сделать и сегодня. С бандлами легче, да, но это уже возможно.
Да, аукцион будет хуже работать в таком случае, потому что меньше контекстных данных, но все же профит все равно больше, чем при полной блокировке.
Текущие технологии тоже позволяют это делать и без бандлов. Да, это кривее, чем с бандлами, но вполне реально. Как вы отметили — потери на аукционе могут быть слишком велики, по сравнению с потерями от адблокеров, чтобы это реализовывать.
К тому же перед тем, как реклама загрузится — сначала нужно загрузить рекламный скрипт на самой странице, который опять же блокируется блокером.На страницу можно воткнуть загрузчик, показывающий квадрат Малевича до загрузки самой рекламы.
Google Chrome, даже обвешанный банерорезками, отправляет себе на родину кучу аналитики. Там страдают больше маркетологи сайтов, на которых пользователи не пожелали смотреть рекламу. Гугл остаётся при своих.
Опасения насчёт бандлов можно применить к любому приложению — судя по описанию, бандл — это примерно как приложение расчитанное для работы в ОС которой является браузер.
Учитывая, что веб-приложение уже можно представить себе как почти пустой html, в котором подключаются бандл стилей и js (а то и просто js, который стили содержит в себе), то отказаться от лишнего html файла звучит вполне здраво.
Про блокировщики рекламы явно идиотизм написан. Видимо те, кто по каким-то причинам противится бандлам, видят в этом отличный способ создать хейт на ровном месте — заявить что Гугл это делает, чтобы помешать блокировщикам рекламы.
Все, инициативу начнут разрывать не разбираясь как там оно на самом деле влияет на возможности блокировщиков (подсказка — скорее никак).
я написал свой адблок, который работает не по ссылкам а по месту на странице, тоесть я нахожу место в иерархии сайта и не даю ему отображаться — веб бандл это никак не спасёт… другое дело что как они звонят
заставят всех программистов заниматься этой чепухой
создадут «удобный» фреймворк, прохайпают его и вуаля ) веб-программисты в большинстве уже давно «скатились» до generate, slightly edit, publish
— медленно и незаметно подсадить на бандлы весь интернет (под пения о безопасности и скорости загрузки)
— начать кешировать бандлы на своих серверах, не давая владельцу сайта встраивать (или обновлять) рекламу, а може встраивать свою рекламу (или замещать чужую)
— придумать тарифные планы для желающих управлять ситуацией
Думаю у Гуле только и мечтают, чтобы весь интернет будет хостился у них.
Плюс лимит на трафик. Все так называемые «безлимитные» тарифы на самом деле переходят в режим «позавидуй dial-up'у» уже после пары десятков выкачанных Гб, и далеко не везде и не у всех операторов есть возможность хотя бы докупить гигабайты — только менять тариф целиком.
И это ещё в городах-миллионниках. Что же происходит в менее крупных населённых пунктах, даже представить страшно.
Это же тот же подход, что и для apk, разве нет? Видимо просто так удобно архитекторам, на диаграмме просто скопипастили с части под названием «Мобильные приложения» в часть «Веб-сайты» :-).
>по принципу «все или ничего» (например, как уже работают PDF или SWF)
Вот SWF это и есть (был) ровно такой ресурс. И прямо скажем, для разработчика это как раз было удобно. Потому что когда вы упаковали все свои ресурсы в один файл — вы точно знаете, что они будут доступны приложению, все сразу и всегда. Ну и apk в общем примерно из той же оперы — только SWF устанавливать не нужно.
Да, некоторые склеивают js код для оптимизации, но ведь, насколько я знаю, делается это потому, что у http1.1 ограничение на передачу одновременно 8 файлов, т.е. мы скачиваем html,css, и один склееный js-bundle вместо десятков отдельных файлов. При этом, если мы его не получим, или получим с задержкой, то особо критично это не будет(конечно, если это сделать грамотно)
То ли лыжи не едут, то ли я чего-то не понимаю, то ли это какая-то невнятная истерия. При чем тут вообще блокировщики рекламы? Это ж по сути упаковка PWA в один файл, и вне PWA никакого интереса не представляет.
Вместо того, чтобы оптимизировать траффик и не грузить файлы, которые не используются на конкретной странице, они предлегают грузить всё подряд бандлом.
Что-то из серии "покупая у нас Кока-колу вы получаете в подарок чизбургер, который мы кладём вам прямо в неё. Нет, вы не можете отказаться. Приятного аппетита!"
Но если Google станет продвигать WebBundles как повсеместный инструмент, для веба могут настать крайне мрачные времена, и вот почему.
Если до этой фразы встречаются обычные неточности, то начиная с этой фразы автор несет лютый бред. Но ему это без разницы, т.к. ему главное воткнуть рекламу, а качество материала его не интересует.
- Бандлы не отменяют HTML, JS, CSS и прочие ресурсы, совершенно неожиданно.
- Более того, бандлы не отменяют URL адреса, но само предложение автор либо не осилил прочитать, либо даже не собирался (ибо зачем?).
- Бандлы не отменяют выпиливание рекламы по контенту.
- Бандлы есть только в хроме, но Google Chrome != Chromium, и уж тем более не равен FF.
Но вообще бандлы никому не мешают — наоборот, дают больше возможностей разработчикам в плане создания оффлайновых приложений. Если скрипты локально сохранённой странички запускаются с сильно урезанными правами (вы к примеру даже не можете сделать getImageData для локально сохранённых картинок — это только в онлайне работает), то для бандла таких ограничений нет. И вы можете создать полноценное оффлайновое приложение, которое можно просто копировать с девайса на девайс без помощи сети.
В Chromium тоже есть, специально проверил.
Т.е. первоисточником является сам Chromium, а не Google Chrome. Еще лучше. Хоть и инициатором был гугл.
Но вообще бандлы никому не мешают
Так и я за это. Взяли нормальную эксперементальную технологию, выставили вселенским злом, повесили это зло на гугла. Хотя единственное, на что эта технология нацелена: уменьшить количество запросов к серверу/CDN.
Про оффлайн тоже согласен, может быть полезно.
единственное, на что эта технология нацелена: уменьшить количество запросов к серверу/CDN.
Ещё неизвестно, уменьшится ли реально число запросов. Потому что для этого нужно чтобы пользователь много раз заходил на один и тот же абсолютно статичный сайт — потому что если сайт меняется, то придётся перекачивать весь бандл. Может это и меньше запросов, чем тянуть отдельно HTML и отдельно CSS, но зато запросы сами "толще", а значит живут дольше, и ещё неизвестно, что для CDN будет хуже.
Web bundles provide a way to bundle up groups of HTTP responses, with the URLs and request URLs that produced them, to transmit or store them together. They can include multiple top-level resources with one identified as the default by a primaryUrl metadata, provide random access to their component exchanges, and efficiently store 8-bit resources.
Суть как раз в объединении статичного контента в готовый пакет. Т.е. вместо пачки JS-CSS-Картинок, с отдельным запросом на каждый файл, оно позволяет скачать один пакет со статичным контентом. Вместо десятка запросов пойдет всего один, и это хорошо как для CDN, так и для сервера. Для динамики бандлы само собой не годятся, но это и не их задача.
И разработчики в большинстве своем не заморачиваються по этому поводу у них то свой собственный сайт из офиса наверняка быстро работает, а пользователи как правило страдают. И давайте будем честными сайты которые действительно заботятся о скорости загрузки и размере ресурсов единицы, в большинстве своем это раздутые склепанные на коленке с отвратительной оптимизацией.
И я вижу еще как поле для размышлений защита веб мастеров от недобросовестных заказчиков, ведь бандл != исходники да и скопировать сайт станет сложней, но это очень скользкая дорожка и все может обернутся очень плохо для всего интернета.
Google продвигает новый стандарт WebBundles — потенциально опасную для веба технологию «упаковки» веб-сайтов