技术周刊 2021-10-15:Firefox 支持 AVIF
source link: https://zhuanlan.zhihu.com/p/422865599
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
技术周刊 2021-10-15:Firefox 支持 AVIF
- Firefox 93 发布:
- 正式支持了 AVIF 图片格式,此前 Chrome 85 已支持;
- 支持了 ES2022 语法类静态初始化区块 Class Static Initialization Blocks;
- 支持了 Custom Element 新 API:
- 用于绑定
<slot>
元素变更的slotchange
事件,将联动 APIHTMLSlotElement.assign()
; - 为自定义组件添加形同
<form>
API 表现的HTMLElement.attachInternals()
; attachInternals()
的返回值类型 ElementInternals 追加了shadowRoot
API,可获取 Shadow DOM 的根结点;
- 用于绑定
- HTTP 鉴权支持了 SHA-256 算法,这个算法比之前的 MD5 更为安全。
- Sanitizer API 是近期由 Google 和 Mozilla 共同提出的,可预防 XSS 的 API:
- 它将解析用户输入的字符串,并移除其中可能有安全风险的属性和标签;
- 此方法和字符串转义不同,它不将一些字符串转义为实体,而是直接移除字符串中的有害部分,同时保留内部的其他部分 HTML 结构;
- 和 DOM Purify 相比,此 API 不会造成 string 被 parse 两次;DOM Purify 可作为 Sanitizer API 的 polyfill;
- 可以通过
new Sanitizer()
来创建一个 Sanitizer 对象,目前对应 API 仍未完全确定,部分提案包括sanitizer.sanitizeFor()
、sanitizer.sanitizeToString()
、sanitizer.sanitize()
等; - 此 API 在 Chrome 中正在开发试用阶段,在 Firefox 83+ 中可通过开启
dom.security.sanitizer.enabled
来进行试用。
- Priority Hints 提案于 Chrome 96 开始进入初期试用中:
- 它包括资源标签(
link
、img
、script
和iframe
)上的importance
属性,可以设置为值low
、high
或auto
,允许用户进一步细化控制资源优加载的先级,可以在加载时不阻塞渲染以及更关键的资源; - 在浏览器中,资源获取存在优先级(Resource Priority)的相关概念:
- Chrome 的资源优先级有如下规则:
- 优先级最高(Highest):HTML 和 CSS;
- 优先级为高(High):字体、
<head>
中的<script>
、XMLHttpRequest
或fetch()
请求; - 优先级为中(Medium):首屏图片、
<body>
底部的<script>
; - 优先级为低(Low): 非首屏图片、
<script async>
、<script defer>
;
- 可用
rel="preload"
来将资源加载的优先级提到高(High); - 可用
rel="prefetch"
来将资源加载的优先级降低到最低(Lowest); - 和上述手段的区别是,
importance="high"
或importance="low"
只是会把资源优先级进行相对原优先级的调整,粒度相对更细,它是对原有的rel="preload"
等手段的扩展,可搭配或单独使用;
- Chrome 的资源优先级有如下规则:
- 同时,Priority Hints 也有适用于 fetch API 的提案,它允许在第二参声明请求的优先级,让浏览器协调 fetch API 网络请求的优先级。
- 它包括资源标签(
点评:此外,Chrome 的 script 标签还存在执行优先级和加载优先级的区分,性能优化时也可以了解一下
- Parcel 2 发版,新版本特性包括:
- 使用 Rust 重写 JavaScript 编译器,并支持并发编译,使得性能大幅提升;
- 全新设计了插件系统;
- 支持 Tree Shaking、Code Splitting、Bundle Inlining;
- 原生支持 ES Modules;
- 强化缓存可靠性,更精确地生成 SourceMap;
- 强化 Web Worker 的支持;
- 优化 SVG 支持,支持图片转码等操作;
- 支持打包编译一个 JavaScript 库;
- 对相关打包性能的比较见下图:
点评:Parcel、Vite 来势汹汹,Webpack 你颤抖了没
- napi-cs 是一个允许开发者使用 .NET 6.0 和 C# 开发 Node.js 包的工具,目前还在初期试用阶段,并非所有的 API 都被实现。
- esbuild 发布 0.13.0 版本,此版本支持强行打开或关闭 tree shaking 行为,并使用了 optionalDependencies 声明了不同平台里的依赖,能加速安装过程。
注:optionalDependencies 目前只在 cnpm 7.1+、pnpm 和 npm 中支持,yarn 暂不支持,详见一丝的测试
编辑:承虎 & 审阅:一丝
Recommend
-
10
AVIF for Next-Generation Image CodingLet us take color subsampling as an example. Choosing 420 subsampling, over the original 444 format, halves the number of samples (c...
-
8
Why AVIF Support in WordPress is Important?December 25th 2020 new story
-
9
Details What it says on the tin, basically. This amounts to setting image.avif.enabled to true and letting it ride the trains to release. Backed out ch...
-
15
WebP and AVIF images on a Hugo websitePublished: 2021.01.04 | 4 minutes readHugo is the tool that I use to generate this website statically. It’s extremely fast, configurable and comes with a bunch of useful features. Added in...
-
10
Firefox 86 預設支援 AVIF 影像格式在「Firefox 86: AVIF support enabled by default」這邊看到的消息,在
-
5
技术周刊 2021-01-11:Firefox 84 发布Firefox 84 发布::not() 选择器支持了复杂选择器,例如
-
7
技术周刊 2021-03-01:Firefox 86 发布,限制跨域 iframe 缓存读写Firefox 86 发布:CSS 中支持了 :autof...
-
8
技术周刊 2021-06-02:Chrome91 性能提升了 23%;Firefox 迎来近4年最大更新Chrome 91 正式发布:
-
5
技术周刊 2021-06-08:React 18 和并发 SSR 支持就要来了React 18 公布了其更新计划: 将到来的功能更新包括:
-
7
一、方案选型目前对于 WebP 和 AVIF 格式支持大致有两种方案, 一种是动态转换, 另一种是静态转换.动态转换: 即在流量的代理层进行处理, 实现对用户的透明化, 用户无需进行任何更改, 由负载均衡器或者中间件进行动态转换处理.静态...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK