Web Weekly 第200期(#博客文章)

Web Weekly 第200期(#博客文章)

💡 原文英文,约1600词,阅读约需6分钟。
📝

内容提要

本文介绍 fetch 的两个阶段:首次 await 等待响应头,第二次等待响应体,response.body 是 ReadableStream。此外还提到 Firefox Nightly 支持链接参数模块,可为外部 SVG 传颜色变量;容器样式查询已进入 Baseline,可用于命名断点;text-box 简写和 checkVisibility() 方法也已广泛可用。

🔎

延伸解读

fetch 两次 await 的机制

文章解释了 fetch 需要两次 await 的原因:第一次 await 等待响应头到达,第二次 await 等待响应体完全接收。response.body 是一个 ReadableStream,这意味着你可以流式处理数据,而不仅限于一次性读取。理解这一点有助于更高效地处理大文件或实时数据,避免不必要的内存占用。

链接参数模块的进展

Firefox Nightly 已支持链接参数模块规范的第一部分,允许为外部 SVG 传递颜色变量等参数。此前,外部 SVG 无法接收动态值,这一新特性解决了长期痛点。虽然目前仅在 Nightly 中可用,但为未来跨浏览器支持奠定了基础,值得关注后续发展。

容器样式查询进入 Baseline

容器样式查询已进入 Baseline,意味着主流浏览器都支持。文章提到可以用它来命名断点,弥补 @custom-media 未能实现的遗憾。开发者现在可以基于容器样式而非视口宽度来应用样式,使组件响应式设计更加灵活和模块化。

新近广泛可用的 CSS 与 JS 特性

text-box 简写和 checkVisibility() 方法现已广泛可用。text-box 可以控制文本盒模型,去除字体特定的空白;checkVisibility() 则提供了一种标准方式来判断元素是否可见。这些特性简化了日常开发,减少了 hack 和 polyfill 的需求。

❓

Q&A

fetch 为什么需要 await 两次才能获取响应体?

因为 fetch 有两个阶段:第一次 await 等待响应头到达,第二次 await 等待响应体到达。response.body 是一个 ReadableStream,所以需要再次等待。

Firefox Nightly 新支持的链接参数模块有什么作用?

链接参数模块允许为外部加载的 SVG 传递颜色变量等参数,解决了之前无法向外部 SVG 传递变量的问题。

容器样式查询进入 Baseline 后可以用来做什么?

容器样式查询进入 Baseline 后,可以用它来命名断点,通过一个小技巧实现类似 @custom-media 的功能。

text-box 简写和 checkVisibility() 方法现在可以安全使用了吗?

是的,text-box 简写已随 Firefox 154 进入 Baseline 新可用,checkVisibility() 方法也已广泛可用,可以安全地在所有地方使用。

response.body 是什么类型?

response.body 是一个 ReadableStream。

如何为外部 SVG 传递颜色变量?

可以使用 Firefox Nightly 新支持的链接参数模块,通过链接参数为外部 SVG 传递颜色变量。

🏷️

标签

➡️

继续阅读