Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Андрей Мелихов на канале ДевШахты опубликовал вторую часть видео, посвящённую Server-Sent Events — "Server-Sent Events: Снимаем ограничения".
В первой части Андрей рассказывал про основные концепции использования API и про решаемые ей задачи (простая альтернатива веб-сокетам, однонаправленный канал связи с сервером). Вторая часть посвящена использованию SSE в реальных проектах.
При использовании SSE поверх первой версии HTTP есть ограничение на максимальное количество подключений к источнику данных — в рамках одной страницы нельзя сделать больше шести подключений. Эту проблему можно обойти переходом на HTTP2. Также при создании подключения с помощью конструктора
Рекомендую посмотреть видео, если хотите узнать больше подробностей про нюансы работы с SSE.
#api #nodejs #video
https://www.youtube.com/watch?v=v6Fc4FQwNa4
В первой части Андрей рассказывал про основные концепции использования API и про решаемые ей задачи (простая альтернатива веб-сокетам, однонаправленный канал связи с сервером). Вторая часть посвящена использованию SSE в реальных проектах.
При использовании SSE поверх первой версии HTTP есть ограничение на максимальное количество подключений к источнику данных — в рамках одной страницы нельзя сделать больше шести подключений. Эту проблему можно обойти переходом на HTTP2. Также при создании подключения с помощью конструктора
EventSource
нет возможности передать дополнительные HTTP-заголовки, например, для авторизации. Это ограничение можно обойти с помощью кук.Рекомендую посмотреть видео, если хотите узнать больше подробностей про нюансы работы с SSE.
#api #nodejs #video
https://www.youtube.com/watch?v=v6Fc4FQwNa4
YouTube
Server-Sent Events: Снимаем ограничения
Внимание! Канал заморожен, все видео по-умолчанию диприкейтед. Смотрите на свой страх и риск :)
---
После первого видео об SSE накопились вопросы и самый важный из них — какие ограничения у этой технологии и как их преодолеть? Разбираемся и лечим.
Спойлер:…
---
После первого видео об SSE накопились вопросы и самый важный из них — какие ограничения у этой технологии и как их преодолеть? Разбираемся и лечим.
Спойлер:…
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Томас Штайнер написал статью про Storage Foundation API — "High performance storage for your app: the Storage Foundation API".
Современные веб-приложения не могут эффективно и гибко работать с большими массивами данных, сохранёнными на диске, что особенно критично для баз данных и программ редактирования аудио и видео.
Эту проблему призван решить Storage Foundation API. Он предоставляет средства для производительной работы с хранилищем данных и включает себя набор примитивов, работа с которыми напоминает работу с обычной файловой системой. С его помощью можно получать информацию о доступном месте, создавать/удалять/переименовывать файлы, производить запись/чтение данных со смещением и т.п.
На данный момент экспериментальная поддержка Storage Foundation API есть только в Chrome в рамках программы Origin Trial.
#api #chrome #experimental
https://web.dev/storage-foundation/
Современные веб-приложения не могут эффективно и гибко работать с большими массивами данных, сохранёнными на диске, что особенно критично для баз данных и программ редактирования аудио и видео.
Эту проблему призван решить Storage Foundation API. Он предоставляет средства для производительной работы с хранилищем данных и включает себя набор примитивов, работа с которыми напоминает работу с обычной файловой системой. С его помощью можно получать информацию о доступном месте, создавать/удалять/переименовывать файлы, производить запись/чтение данных со смещением и т.п.
На данный момент экспериментальная поддержка Storage Foundation API есть только в Chrome в рамках программы Origin Trial.
#api #chrome #experimental
https://web.dev/storage-foundation/
Forwarded from The Devs
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Использование AbortController и AbortSignal в Node.js
Джеймс Снелл — контрибьютор Node.js — написал статью про использование AbortController и AbortSignal в Node.js — "Using AbortSignal in Node.js".
Последние два года разработчики Node.js работают над добавлением разных API web-платформы. Результатом этой работы стала реализация AbortController, который появился в стабильной версии Node.js 16.
AbortController и AbortSignal реализуют интерфейс для отмены выполнения асинхронных операций. С его помощью можно прерывать таймеры, асинхронные запросы, отписываться от событий, добавленных с помощью интерфейса EventTarget, который поддерживают некоторые API Node.js. В статье рассказывается о том как использовать AbortController и AbortSignal на примере прерывания асинхронного события по таймауту.
Рекомендую почитать статью всем, так как AbortController доступен не только в Node.js, но и во всех актуальных браузерах.
#nodejs #async #api
https://www.nearform.com/blog/using-abortsignal-in-node-js/
Джеймс Снелл — контрибьютор Node.js — написал статью про использование AbortController и AbortSignal в Node.js — "Using AbortSignal in Node.js".
Последние два года разработчики Node.js работают над добавлением разных API web-платформы. Результатом этой работы стала реализация AbortController, который появился в стабильной версии Node.js 16.
AbortController и AbortSignal реализуют интерфейс для отмены выполнения асинхронных операций. С его помощью можно прерывать таймеры, асинхронные запросы, отписываться от событий, добавленных с помощью интерфейса EventTarget, который поддерживают некоторые API Node.js. В статье рассказывается о том как использовать AbortController и AbortSignal на примере прерывания асинхронного события по таймауту.
Рекомендую почитать статью всем, так как AbortController доступен не только в Node.js, но и во всех актуальных браузерах.
#nodejs #async #api
https://www.nearform.com/blog/using-abortsignal-in-node-js/
Nearform
Using AbortSignal in Node.js | Nearform
Nearform is an independent team of engineers, designers and strategists. We build digital capability and software solutions for ambitious enterprises seeking sustained business impact. We love what we do.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Глубокое копирование объектов с помощью structuredClone
Сурма из Google рассказал про новое API для глубокого копирования JavaScript-объектов — "Deep-copying in JavaScript using structuredClone".
Самым популярным решением для глубокого копирования объектов был JSON-хак:
Он стал настолько популярен, что в браузерах были добавлены специальные оптимизации для этого хака. На данный момент он остаётся самым быстром способом для быстрого копирования небольших объектов. Однако он не поддерживает копирование объектов с циклическими ссылками,
Структурное клонирование — это другое название для глубокого копирования. Оно использовалось браузерами неявно при передаче объектов с помощью
Поддержка
#js #api
https://web.dev/structured-clone/
Сурма из Google рассказал про новое API для глубокого копирования JavaScript-объектов — "Deep-copying in JavaScript using structuredClone".
Самым популярным решением для глубокого копирования объектов был JSON-хак:
const myDeepCopy = JSON.parse(JSON.stringify(myOriginal));
Он стал настолько популярен, что в браузерах были добавлены специальные оптимизации для этого хака. На данный момент он остаётся самым быстром способом для быстрого копирования небольших объектов. Однако он не поддерживает копирование объектов с циклическими ссылками,
Map
, Set
, Date
, RegExp
и ArrayBuffer
.Структурное клонирование — это другое название для глубокого копирования. Оно использовалось браузерами неявно при передаче объектов с помощью
postMessage
и сохранении объектов в IndexedDB
. Новый метод structuredClone
открывает удобный доступ к этому механизму клонирования без недостатков JSON-хака:
const myDeepCopy = structuredClone(myOriginal);
Поддержка
strucutredClone
на данный момент есть в Firefox 94, в nightly-версии Chrome и Safari TP.#js #api
https://web.dev/structured-clone/
web.dev
Deep-copying in JavaScript using structuredClone | Articles | web.dev
For the longest time, you had to resort to workarounds and libraries to create a deep copy of a JavaScript value. The Platform now ships with `structuredClone()`, a built-in function for deep-copying.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Self-Profiling API на практике
Ник Джансма написал статью про новое экспериментальное API для профилировки производительности сайтов на устройствах пользователей — "JS Self-Profiling API In Practice".
Self-Profiling API предоставляет программный доступ к семплирующему профилировщику для получения детальной информации о выполнении JavaScript-кода у пользователей сайта. API можно использовать как для анализа производительности кода сайта, так и для анализа производительности скриптов внешних сервисов. Проанализировать выполнение кода можно на любом этапе жизни страницы. Доступ к Self-Profiling API включается с помощью HTTP-заголовка
Несмотря на экспериментальный статус Facebook и Microsoft уже начали использовать Self-Profiling API в своих сервисах для поиска проблем производительности.
На данный момент поддержка Self-Profiling API есть только в Chrome версии 94 и выше.
#performance #api
https://calendar.perfplanet.com/2021/js-self-profiling-api-in-practice/
Ник Джансма написал статью про новое экспериментальное API для профилировки производительности сайтов на устройствах пользователей — "JS Self-Profiling API In Practice".
Self-Profiling API предоставляет программный доступ к семплирующему профилировщику для получения детальной информации о выполнении JavaScript-кода у пользователей сайта. API можно использовать как для анализа производительности кода сайта, так и для анализа производительности скриптов внешних сервисов. Проанализировать выполнение кода можно на любом этапе жизни страницы. Доступ к Self-Profiling API включается с помощью HTTP-заголовка
Document-Policy: js-profiling
. Оно оказывает минимальный эффект на производительность сайта у пользователей.Несмотря на экспериментальный статус Facebook и Microsoft уже начали использовать Self-Profiling API в своих сервисах для поиска проблем производительности.
На данный момент поддержка Self-Profiling API есть только в Chrome версии 94 и выше.
#performance #api
https://calendar.perfplanet.com/2021/js-self-profiling-api-in-practice/
Web Performance Calendar
JS Self-Profiling API In Practice
Table of Contents
The JS Self-Profiling API
What is Sampled Profiling?
Downsides to Sampled Profiling
API
Document Policy
API Shape
Sample Interval
Buffer
Who to Profile
When to Profile
Specific Operations
User Interactions…
The JS Self-Profiling API
What is Sampled Profiling?
Downsides to Sampled Profiling
API
Document Policy
API Shape
Sample Interval
Buffer
Who to Profile
When to Profile
Specific Operations
User Interactions…