Firefox v57 WritableStream
Streams API - хороший метод для взаимодействия с потенциально бесконечными потоками данных в браузере. ReadableStreams
в частности, дать вам методы для представления потенциально бесконечных источников данных; где "обработка" выполняется по частям.
WritableStreams
являются двойственными для этой концепции - представляют собой приемник, который может потреблять потенциально бесконечные порции данных. Кроме того, существует дополнительная ( недокументированная на MDN) концепция, называемая TransformStream
; которая является просто комбинацией двух - представляющих преобразование данных по частям.
Мой вопрос довольно прост - почему Firefox воздерживается от реализации API WritableStream, если Chrome и даже IE поддерживают его? Есть ли конкретная философская причина не реализовывать это? В частности, ByteStream
варианты потоков (которые не были полностью реализованы в спецификации, по- видимому), я считаю подозрительным.
1 ответ
Никакой философской причины, я думаю, просто прагматическая. В отличие от ReadableStream , который используется в API ответа выборки , ни один стандартный веб-API пока не использует шаблон WritableStream (по модулю собственного
new WritableStream()
конструктор, который сейчас служит главным образом инструментом JS для чтения потоков через конвейер).
Это имеет значение в двух отношениях. Первый - это приоритет ресурсов (патчи приветствуются!)
Во-вторых, реализация API браузера, использующего шаблон WritableStream, помогает обеспечить хорошую реализацию этого шаблона, который все еще относительно новый. В частности, байтовые потоки должны быть производительными.
Здесь отслеживается поддержка WritableStream в Firefox .
Некоторые новые веб-API на основе WritableStream находятся в процессе стандартизации в W3C и, вероятно, изменят ситуацию в Firefox. Но они все еще находятся на начальной стадии. Два из них:
- API WebTransport ( давно инкубированный в WICG). Поддержка Firefox отслеживается здесь .
- Медиа- потоки, закодированные в WebRTC, RTCRtpScriptTransform (также известные как «вставляемые потоки»).
В Chrome и Edge есть экспериментальные реализации WebTransport за pref, что, вероятно, связано с их ранней поддержкой WritableStream.