Hacker News Digest

13 октября 2025 г. в 21:39 • ducktypelabs.com • ⭐ 77 • 💬 8

OriginalHN

#turbo#turbo-streams#rails#fetch-api#dom#web-development

How does Turbo listen for Turbo Streams

Turbo отслеживает Turbo Streams через два механизма. При отправке форм он перехватывает события submit через слушателя на document, предотвращает стандартную отправку и использует fetch API с заголовком Accept: text/vnd.turbo-stream.html. Это сигнализирует серверу, что можно отвечать Turbo Stream элементами. Сервер, в свою очередь, должен вернуть ответ с Content-Type: text/vnd.turbo-stream.html.

Для обработки ответов Turbo использует слушателя события turbo:before-fetch-response. Этот обработчик проверяет тип содержимого ответа и при совпадении добавляет содержимое в DOM. Когда <turbo-stream> элементы добавляются, они автоматически выполняют одно из семи действий (append, prepend, replace и т.д.). Для обычных fetch-запросов разработчикам нужно самостоятельно добавлять заголовок Accept.