Как стать автором
Обновить
1
0
Pavel Nappsel @Nappsel

Frontend Developer

Отправить сообщение

JavaScript: ускоряем загрузку изображений с помощью Imgproxy, Cache API и Service Worker API

Время на прочтение12 мин
Количество просмотров11K



Привет, друзья!


В этой статье я хочу поделиться с вами результатами небольшого эксперимента, связанного с ускорением загрузки изображений с помощью Imgproxy, Cache API (далее — кеш) и Service Worker API (далее — СВ).


Мы с вами разработаем простое приложение на React, в котором используется несколько изображений, и добьемся того, что загружаемые изображения будут более чем в 10 раз легче (меньше по размеру) оригиналов (imgproxy), а также практически мгновенной загрузки (доставки) изображений (СВ и кеш).


Обратите внимание: в части, касающейся imgproxy, особых препятствий на пути использования рассматриваемого в статье подхода к загрузке изображений в продакшне нет, но в части, касающейся СВ, следует проявлять крайнюю осторожность, поскольку данная технология является экспериментальной — это означает, что поведение СВ во многом определяется конкретной реализацией (браузером), что в ряде случаев делает его довольно непредсказуемым. Возможно, для кеширования изображений лучше предпочесть старые-добрые HTTP-заголовки Cache-Control и Etag. Но эксперимент на то и эксперимент, чтобы, в том числе, искать новые ответы на старые вопросы.


Для тех, кого интересует только результат эксперимента, вот репозиторий с исходным кодом проекта.


Остальных прошу под кат.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии13

Выборочный обход блокировок на маршрутизаторах с прошивкой Padavan и Keenetic OS

Время на прочтение23 мин
Количество просмотров348K
Инструкций с разными вариантами обхода блокировок Интернет-ресурсов опубликовано огромное количество. Но тема не теряет актуальности. Даже всё чаще звучат инициативы на законодательном уровне заблокировать статьи о методах обхода блокировок. И появились слухи, что Роскомнадзор получит ещё одну пачку денег налогоплательщиков на «более лучшие» блокировки. Опытные пользователи ничего нового и полезного из статьи не узнают. А вот другие получат готовые пошаговые инструкции для простого и эффективного выборочного обхода блокировок на популярных маршрутизаторах с прошивкой Padavan и Keenetic.


Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии0

Styled Components — идеальная стилизация React-приложения

Время на прочтение15 мин
Количество просмотров67K

Это статья о Styled Components будет полезна новичкам и старичкам. Для понимания материала нужны базовые навыки работы с React и TypeScript.

Styled Components — одно из популярных решений написания кода методом CSS in JS. Гибкое, простое и, главное, идеально вписывается в архитектуру React приложения.

Разберём данную библиотеку на базовых примерах в связке с TypeScript. Также поделюсь своими лучшими практиками при написание кода.

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии18

Differential Serving — делаем свой код чище и производительнее

Время на прочтение6 мин
Количество просмотров5.5K


Всем привет!

Некоторое время назад думали с командой, как оптимизировать наш бандл. Но когда ты поддерживаешь IE или старые браузеры, оптимизация может стать непосильной задачей, так как бандл преобразуется до es3-5, polyfill-ы и т.д.

Бандл весит много, грузится долго. Но почему пользователь, например, последней версии хрома, должен мучиться с долгой загрузкой приложения?

Differential Serving поможет заметно облегчить бандл — это довольно интересный метод оптимизации. Толкового материала по теме нашла маловато, в основном на английских форумах, поэтому решила поделиться своим небольшим исследованием.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+7
Комментарии7

«А вы сайты делаете?» Сайт сайту рознь. Давайте разберёмся

Время на прочтение4 мин
Количество просмотров3.5K
Сегодня хотел бы поговорить о заказчиках, исполнителях. Речь пойдёт о простых сайтах для захвата контактов на товар\услугу. Не берём e‑commerce, сервисы и прочее.

Заказчик


Для чего вообще заказчики (предприниматели) хотят иметь собственным сайт?

Как бы мы не мечтали, что заказчики знают зачем им сайт, на деле ими движут странные мотивы и идеи.

Есть, конечно, клиенты знающие зачем они пришли к исполнителю, но таких единицы. Чем дальше от Москвы, тем хуже ситуация с пониманием.
Читать дальше →
Всего голосов 11: ↑5 и ↓60
Комментарии14

Создаем интернет-магазин на Nuxt.js 2 пошаговое руководство Часть 1

Время на прочтение27 мин
Количество просмотров84K


Статья ориентированна на людей, которые уже имеют понимание работы Vue, на котором основан Nuxt, поэтому я буду заострять внимание только на специфических для Nuxt вещах. Но даже если вы не знакомы с ними, то статья даст общее представление как выглядит проект с Nuxt.


Вы сможете почерпнуть полезные хаки, плагины и способы решения проблем, которые часто возникают при создании Nuxt приложений.


В этой статье я хочу поделиться как создать примитивный интернет-магазин:


  • Который будет быстро загружаться у пользователя.
  • Который полюбит Google (или любой другой поисковик) с точки зрения SEO.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии9

Prettier в крупных проектах: тратим 20 минут на настройку, забываем о форматировании навсегда

Время на прочтение3 мин
Количество просмотров40K
Разработчики часто не могут договориться о форматировании кода, и типичный рабочий день для многих начинает выглядеть так: кофе, кодинг, всё мирно и хорошо, — а потом, бац, и наступает код-ревью, на котором выясняется, что ты где-то поставил скобочки не так или не перенес что-то на новую строчку.



Год назад одна из команд в Skyeng сталкивалась с такими холиварами почти на каждом ревью. Но затем человек, у которого больше всех болело, сказал: «Теперь живем на Prettier'e, согласны?» За следующие месяцы ребята ни разу не поднимали вопрос о форматировании, а теперь эта штука стоит на всем монорепозитории фронтенда — и его использует каждая команда, которая туда заезжает.
Читать дальше →
Всего голосов 23: ↑18 и ↓5+16
Комментарии32

Как я сделал удобной разработку на Vue.js с server-side рендерингом

Время на прочтение10 мин
Количество просмотров37K
Всем привет!

Начну с небольшой предыстории.

Свой новый проект я решил попробовать сделать на Vue.js. Мне нужен был серверный рендеринг (SSR), CSS модули, code-splitting и прочие прелести. Разумеется, для повышения производительности разработки нужна была горячая перезагрузка (HMR).

Я не хотел использовать готовые решения, типа Nuxt.js, т.к. при разрастании проекта важно иметь возможность кастомизации. А любые высокоуровневые решения, как правило, не дают этого делать, или дают, но с большими усилиями (был похожий опыт с использованием Next.js для React).

Основная проблема локальной разработки при использовании серверного рендеринга и горячей перезагрузки состояла в том, что мало запустить один webpack-dev-server. Мы должны также что-то сделать с исходниками, которые запускает Node.js, иначе при следующей перезагрузке страницы мы получим код, который не был обновлен на сервере, но обновился на клиенте.

Погрузившись в документацию и интернет, я, к сожалению, не нашел готовых адекватно работающих примеров и шаблонов. Поэтому я создал свой.


Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии11

10 PostCSS плагинов, которые сэкономят время вашему верстальщику

Время на прочтение10 мин
Количество просмотров31K


У нас, у фронтендеров, есть такая категория инструментов, которые никак не решают стоящие перед нами задачи, а скорее влияют на сам процесс их решения. Изменяют его. Отношение к таким инструментам самое разное – начиная от мании в духе “давайте эту штуку пихать везде, это же так круто” и заканчивая отговорками вроде “раз не решает задачи бизнеса, значит оно нам не нужно”. Но, так или иначе, сегодня мы поговорим про PostCSS — один из таких инструментов.


Волна хайпа уже давно прошла, в последнее время про PostCSS говорят очень мало. Многие новички даже не знают, что это такое. Думаю самое время посмотреть на этот инструмент с точки зрения практического использования в самых обычных проектах, где люди решают задачи, а не играются с модными технологиями.

Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии14

Потенциальные атаки на HTTPS и как от них защититься

Время на прочтение6 мин
Количество просмотров20K
Половина сайтов использует HTTPS, и их число стабильно увеличивается. Протокол сокращает риск перехвата трафика, но не исключает попытки атак как таковые. О некоторых их них — POODLE, BEAST, DROWN и других — и способах защиты, мы расскажем в нашем материале.

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии3

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Frontend Developer, Web Developer
Senior
JavaScript
HTML
Vue.js
Webpack
Crossbrowser layout
Adaptive layout
Web development
SCSS
Node.js
BEM