天天看点

Google Chrome 53 Beta 引入影子 DOM V1

google chrome 53 beta引入影子(shadow)dom v1,以及支付请求(paymentrequest)api。

与之前影子dom v0明显不同,v1弃用了影子dom对多个根节点的支持,并增加了阻止外界访问内部的根节点关闭功能。

在发布声明的博客中,hayato ito强调,虽然html、css、javascript非常有用也很强大,但是很难对大代码量进行维护。

ito表示,v1“能让元素封装自己的样式且子dom不受外界dom的影响。这提升了大代码量的可维护性”。同时chrome仍将支持v0。

在hackernews关于google chrome 53 beta的讨论中,用户borplk问到“影子dom是否对react等有影响?如在提升性能等方面”。

google工程师eric bidelman回复到:

很明显,影子dom是一个浏览器内嵌的提升开发者效率的工具。

在react中,你需要使用内联样式或支持模块化、增加css前缀的构建工具(如css modules)。内联样式会将特性配置污染到全局,并且大量内联样式会让浏览器做超出必要的上下文切换(html解析器<->css解析器)。注意,后者不太会成为真实应用的性能问题。

在影子dom中,你只需要写css。在“

在32 beta版本中也引入了新的支付请求(payment request)api,ito表示这个功能可以快速且安全地使用信用卡及android pay进行支付,用户不用输入就能提供账单地址、送货详情以及付款人信息。

这个api在w3c工作草案中有具体描述:

随着用户发起支付流程(如在交互式游戏中点击“能力提升”,在停车场中使用自动付费机或点击“购买”、“结账”按钮),网页会创建一个支付请求进行支付。在确认或拒绝支付前,用户需要输入信息,此时支付请求允许网页与用户代理间进行交互来获得信息。

google提供了一个演示视频。

几乎隐藏在诸多53 beta的小改进中的还有初次试验的网页蓝牙api。在页面使用navigator.bluetooth.requestdevice来请求访问附近的设备时,网页蓝牙api会提示用户选择设备。

chrome 53 beta中一些弃用的功能有:

弃用http/0.9,使用支持响应报文头的http/1.0来取代。

移除了已在m51中弃用的tls diffie-hellman加密。

textencoder api不再接受参数,并始终使用utf-8进行编码。

chrome不再信任没有证书透明度(certificate transparency)信息的symantec及链向symantec的ca所发布的新证书。

继续阅读