Технологія 5G – це вже реальність. Відповідний значок починає з’являтися у верхніх частинах екранів телефонів по всьому світу. Якщо ви підключені до 5G-мережі, то ви могли помітити, що така мережа не здається набагато швидшою за 4G-мережу. Кажуть, що зараз, в дні становлення нових мереж, справжнім 5G-швидкостям заважає процес міграції інфраструктури. Але після того як технологія 5G, у всіх сенсах, подорослішає, очікується, що швидкість мереж дуже сильно зросте. Так, за деякими відомостями, середні швидкості завантаження даних в 5G-мережах в 2019 році можуть скласти від 100 Мбіт до 1 Гбіт в секунду.
Не варто забувати про те, що в 5G-мережах покращиться не тільки смуга пропускання. Очікується і зменшення мережевих затримок. А затримки – це одне з давно і сумно відомих вузьких місць продуктивності інтернету. Зниження затримок означає, що час, який витрачається на підключення до веб-сайту, може, за відчуттями користувачів, впасти практично до нуля.
Виходить, що якість мереж вже дуже скоро значно виросте. І це, схоже, має вирішити проблеми швидкості сучасного вебу.
Однак, якщо сучасні тренди веб-розробки не зміняться, то широке впровадження 5G-мереж приведе до того, що середньостатистичному користувачеві працюватиметься в інтернеті не краще, а гірше.
Більш швидкі мережі повинні вирішити проблеми швидкості завантаження сайтів, але до сих пір зростання мережевих швидкостей ненавмисно надавав на веб негативний вплив. Справа в тому, що прискорення мереж дозволяє розробникам відправляти відвідувачам сайтів більше коду. Зокрема – мова йде про JavaScript-код.
З 2011 року по 2019 рік рівень 4G-покриття в світі виріс з 5% до 79%. За той же самий час медіанне значення середнього обсягу JavaScript-коду, переданого на мобільні пристрої, зросло на 611% – з 52 Кб, до 372.9 Кб. Звичайно, обсяги JS-коду виросли не тільки через зростання швидкості мереж. Цьому сприяли і багато інших чинників. Сайти, безумовно, за цей час стали набагато більш інтерактивними. Це цілком могло привести до зростання обсягу їх JS-складової. Крім того, поширення отримав чуйний дизайн. В результаті безліч сайтів почали відправляти один і той же JavaScript-бандл на всі пристрої, на яких ці сайти переглядають. Правда, тут варто уточнити те, що настільні сайти в 2011 році відправляли клієнтам, в середньому, лише на 50 Кб більше JS-коду, ніж їхні мобільні колеги. В цілому ж можна відзначити, що шаблони розробки інтерфейсів з 2011 року змінилися не дуже сильно. Наприклад, веб-сайт Boston Globe створений з великою увагою до зручності роботи з ним на самих різних пристроях. Він запущений в 2010 році. Інтерфейси новинних сайтів до сих пір влаштовані практично так само. І нарешті, вищезазначений тренд, за останніми даними, триває. А саме, за останню пару років середній обсяг JS-коду, переданого клієнтам, зріс більш ніж на 50%.
Треба відзначити, що виникає відчуття того, що зростання обсягів JS-коду в повному обсязі прив’язаний до можливостей інтерфейсів сайтів. Тут слід звернути увагу на те, що велика частина зростання обсягу коду пов’язана з ростом використання сторонніх скриптів на 706%. Безсумнівно, запити на завантаження сторонніх скриптів можуть відноситися до JS-фреймворків, але найчастіше це – щось інше. Це може бути код трекерів, A/B-бібліотек, скриптів для персоналізації. Це може бути реклама, чат-боти … І все це, в свою чергу, робить запити на завантаження додаткових скриптів, а ці додаткові скрипти ще щось завантажують.
Отже, у міру того, як росла пропускна здатність мереж, збільшувався і обсяг JS-коду, використовуваного на веб-сторінках. Але і тут можна подумати, що якщо весь цей код завантажується досить швидко, то зростання його обсягу – явище порівняно невинне. Правда це, на жаль, не так. Якщо порівняти JavaScript-код з іншими видами ресурсів, що використовуються при створенні веб-сторінок, то виявляється, що JavaScript – це дуже дороге задоволення. Ціна JavaScript набагато вище, ніж ціна інших матеріалів.
«На моєму телефоні все виглядає добре»
Зручності розробників дуже легко можуть завести веб-індустрію на криву доріжку.
На середньому мобільному пристрої, з таких, які все ще використовуються, розбір 200 Кб JavaScript-коду (стисненого для прискорення передачі) може зайняти 6 секунд або навіть більше. І це – вже після того, як код буде завантажений по мережі. Перш ніж ви вирішите, що 200 Кб – це нереально багато для якогось сайту, згадайте про те, що перегляд сучасного сайту означає, що користувач, в середньому, завантажить майже в два рази більший обсяг JS-коду. При цьому в процесі розбору даного коду сторінка може бути видимою, але не реагує на дії. А може бути і так, що сторінка буде абсолютно порожньою (це – якщо скрипт на сторінку підключений з використанням традиційного підходу, тобто так, що його обробка блокує рендеринг сторінки). Недіюча сторінка і порожня сторінка – це однаково погано, але особливе занепокоєння викликає те, що багато хто з тих, хто зайнятий веб-розробкою, самі подібних проблем навіть не помічають.
Середній мобільний пристрій – це не новітній дорогий iPhone з трьома камерами. Середній пристрій, навіть в США, це телефон з розряду бестселерів, який коштує близько $130. Це цілком може бути і iPhone, але – далеко не самий новий. Швидше за все, це буде Android-телефон середнього рівня, що містить порівняно слабку апаратну начинку.
Якщо люди з такими телефонами навіть і будуть користуватися новими швидкими мережами, то їх пристрої виявляться буквально «задушеними» тими обсягами коду, які доводиться обробляти для показу веб-сторінок. А це зведе нанівець ті потенційні поліпшення в швидкості завантаження матеріалів, які здатні дати 5G-мережі.
Як бути тим, у кого немає 5G-підключень?
Організація поширення 5G-мереж вимагає великих інфраструктурних змін. Перші кандидати на появу таких мереж – це розвинені країни і високотехнологічні міста. У країнах, що розвиваються і в сільській місцевості ці мережі навряд чи з’являться так само швидко. Це означає, що люди, які живуть там, де немає 5G-мереж, в сучасних умовах цілком можуть не тільки працювати з веб-сторінками на не самих швидких пристроях, а й завантажувати код цих сторінок, обсяг якого дедалі зростає, користуючись старими 3G і 2G -мережами. Таким людям від введення в дію 5G-мереж буде погано подвійно.
Що робити?
Відповідальність за вирішення цієї проблеми лежить на індустрії веб-розробки, на кожному з нас. Звичайно, нам потрібно покращувати пріоритизації доставки клієнтам вмісту веб-сторінок, але нам треба ще й припинити включати до складу проектів настільки величезні обсяги JavaScript-коду. Необхідно аналізувати використовувані скрипти, регулярно вивчати залежності проектів. Багато з таких залежностей можуть виявитися покинутими їх розробниками, або являти собою проекти з недовгим терміном життя. Можливо, ми навіть можемо скористатися тут досвідом The Telegraph, видаливши старі сторонні скрипти і подивившись, чи поскаржиться хтось на будь-які проблеми. Ми можемо вивчити нашу залежність від відстеження дій користувача і від персоналізації реклами. Можливо, ми, так само, як The New York Times, з’ясуємо, що показ користувачам звичайних неперсоналізованих рекламних оголошень може збільшити наш дохід від реклами. А якщо так і буде – варто позбутися від непотрібних рекламних скриптів. Можна, для спостереження за тим, щоб показники продуктивності веб-проектів не виходили б за якісь межі, користуватися інструментами на кшталт Calibre або SpeedCurve. При цьому варто прагнути до того, щоб про продуктивність проекту дбав би кожен, хто має до нього відношення, щоб кожен знав би про те, як його дія або бездіяльність впливає на проект.
Найголовніше – нам потрібно зробити так, щоб у менеджерів, власників сайтів, розробників, дизайнерів, так абсолютно у всіх, був би доступ до телефонів середнього класу, і була б можливість регулярно тестувати наші сайти на таких телефонах. А ще краще – якщо подібні телефони будуть підключені до передплаченого або обмеженого тарифного плану. Це дозволить дізнатися про те, скільки часу знадобиться на те, щоб вибрати ліміт трафіку в світі 5G-мереж. Якщо всі, хто має відношення до якогось сайту, будуть знати про те, як його продуктивність виглядає в реальному світі, це благотворно позначиться на всіх відвідувачів сайту. В тому числі, на тих, хто користується швидкими сучасними телефонами.
Підвищення якості мереж означає, що у спільноти розробників є величезна можливість поліпшити створюваний ними веб-простір. Чи скористаються вони цією можливістю чи ні – залежить тільки від них.
Джерело: habr.com