同事,像我这样的熟练且精通技术的网络开发人员,始终显示出令人讨厌的Chrome更新通知。这个看似较小的细节突出了一个更大的问题:“常绿”浏览器的现实。虽然自动更新功能是有益的,但不能保证所有用户立即采用。
我的同事优先考虑不间断的工作流,而不是立即浏览器更新,这是一种完全合理的方法。具有讽刺意味的是,高端笔记本电脑可以使用数月的使用而无需重新启动,这使得这种延迟加剧了,这与功能较小的机器不同,这可能需要更频繁地重新启动,从而更快地更新周期。
在常绿浏览器之前,手动更新是常态,涉及网站下载甚至物理媒体的过程。 Evergreen浏览器会自动化此功能,通过需要重新启动的提示进行更新,在重新启动时激活背景下载或重新启动。
主要的浏览器(Chrome,Edge,Firefox)主要是常绿的。但是,Safari依靠MacOS更新来浏览器更新(一种不优雅的解决方案),这是一个独特的情况。理想情况下,Safari的更新机制将与OS更新过程解耦。
Internet Explorer的Demises巩固了常绿浏览器作为标准,从而简化了兼容性问题。但是,这并不能消除仔细考虑的需求。
caniuse.com
数据不反映现实世界浏览器版本。更新并未在所有设备上立即应用。这需要对新功能进行谨慎的方法。
抵制立即包含最新功能的诱惑。相反,使用CSS和JavaScript逐步提高体验的优先级。
网络的弹性在于适应其多样化的景观。 CSS和JavaScript提供了根据浏览器功能有条件地提供内容的机制。
不用哀叹功能支持,不如接受实验实现的心态。
JavaScript的Navigator
接口允许功能检测。例如:
如果(!(Navigator中的“ geoLocation”)) //处理缺乏地理位置支持 } 别的 { //利用地理位置功能 }
这种方法在实施新功能之前优先考虑后备机制。
CSS的@supports
规则提供有条件的样式:
。成分 { / *基本样式 */ } @supports(网格 - 板块柱:subgrid;){ 。成分 { / *增强样式的子网格支持 */ } }
这样可以确保所有浏览器的基本功能,同时增强有能力的体验。
在添加功能检测的同时,这增加了代码的复杂性,但这是一项值得的投资。仅在经历了大量段(Feature后六个月发布)后才考虑将其删除,以说明各种更新延迟。这个时间表是一般指导方针;专业受众可能需要调整。分析和用户反馈对于确定最佳删除时间至关重要。
但是,可能并不总是建议完全删除功能检测。考虑以下用户:
网络的成功源于其对各种设备和用户的适应性。强大的方法优先考虑兼容性和优雅的退化。
设备的扩散需要采取未来的策略。考虑设备的扩展范围(电话,平板电脑,智能电视等)及其不同功能。优先考虑此范围的兼容性确保了一致的用户体验。
感谢吉姆·尼尔森(Jim Nielsen)的反馈。
以上是'常绿”并不意味着立即可用的详细内容。更多信息请关注PHP中文网其他相关文章!