本文首发于公众号:符合预期的CoyPan
前不久,Apple 的 WWDC20给咱们带来了不小的惊喜。Safari 浏览器将迎来大版本更新。做为一个Web Developer,我观看了Apple的官方介绍视频。本文就根据视频,简单说一说Safari 14到底为Web开发者带来了哪些优化和新特性。javascript
What's new for web developers视频在这里:https://developer.apple.com/v...css
本文将从如下几个方面讲起:java
一、Performance ;二、Web Api;三、CSS;四、Media;五、JavaScript;六、Platform integrationweb
性能。小程序
对于用户来讲,Safari 14大幅提升了浏览性能。从下图官方给出的数据能够看到,点击链接跳转、打开页面、回退、关闭未响应的tab等,都有了大幅度的性能提高,反应更快了。浏览器
对于开发者来讲,安全
一、页面滚动时,CPU使用率降低了3倍。这意味着,在实现Safari上的特殊滚动逻辑时,将会更加流畅。app
二、IndexedDB的操做快了10倍。异步
三、for-of循环快了5倍。ide
四、Promise快了2倍。
五、JS中的delete操做快了12倍。
不看不知道,原来Safari中的for..of..迭代很耗时?咱们使用老的Safari浏览器和Chrome浏览器作一个对比。我使用下面的代码在控制台进行了测试:
var arr = []; for(var i = 0; i < 100000000; i++) { arr[i]=i; } console.time('test'); for(var j of arr) {} console.timeEnd('test');
通过几回测试,上面的for...of...迭代,老的Safari(版本号:13.1.1 )中平均耗时为4000ms往上,而Chrome(版本号:83.0.4103.106)中,这一平均耗时为:1700ms左右。
视频中提到的API,是对过去一年(Safari 13 - Safari14)的一个总结。
JavaScript能够直接调用Animation Api很方便的实现动画效果。看官方给出的示例:
借助这个Api,能够直接操做DOM进行运动,而不是像以前的修改DOM的属性、CSS类等方式来实现动画。
Web Animation API 在W3C规范中,目前只是一个草案。Safari 13.1开始支持,Chrome在6年前的36版本实现了这个API。
Resize observer能够监听DOM元素的尺寸改变,窗口大小改变,display属性改变,DOM子元素被添加等。示例代码以下:
这个API,目前只是在一个编者草案阶段。Safari从13.1开始支持,Chrome从64版本开始支持这个API。
支持剪切板的读写,支持文件和富文本。可是必需要求上下文安全,以及用户的交互。
这个API处于W3C工做草案阶段,Chrome从66版本开始支持,Safari从13.1开始支持。
同时,支持了CSS Shadow Part
键盘会根据这个属性的值显示不一样的文本。
经过这个API能够调用iOS的指纹ID以及Face ID
下面是CSS方面的更新。
line-break: anywhere
使用:is来减小重复
:where和:is的语法、功能相同,不过:where的优先级为0,能够被其余CSS规则轻易覆盖。
一、支持了webp格式的图片。
二、支持按默认的图片比例占位。
三、设置图片的方向
四、远程播放API
支持远程播放视频
五、画中画 API
支持画中画的形式播放视频
Safari 14 支持了BigInt
视频里,这一部分只是简单的提到了Customize AR Quick Look(自定义AR预览),Apple Pay,App Clips(Apple想要创建本身的小程序生态),并无进一步的介绍。想要详细了解相关内容,能够移步到相关的视频。本文也很少作介绍了。
本次的WWDC提到的Safari相关的更新还有不少,好比:支持Http3,支持JS插件,全新的Web Inspector,再也不支持Flash等等。
Safari的这一系列更新,只在Apple本身的生态下,能够玩得转。可是对于普通的业务开发者来讲,只是提供了更多的可能,并不会带来太大的影响,该作兼容得作兼容,Babel该用还得用。不过经过这些更新,也能够大概窥探到Web技术发展的一个大体方向:
一、对于语言、接口层面,浏览器在实现更多的新规范,咱们将来的Web开发会愈来愈简单、方便。
二、Web技术和终端、OS的结合愈来愈紧密,将来的Web应用会有更多的可能。