整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

以前,如果提到开发者最讨厌的浏览器,那必然非 IE 浏览器莫属:兼容性差、安全漏洞频出、缺乏最新的技术支持,又因为许多企业网站都需要 IE 的支持,开发者就算再不乐意,也只能被逼无奈地继续使用 IE。

而这个局面,在微软宣布 IE 浏览器将于明年停用后发生了微妙的变化。IE 浏览器即将退出历史舞台,那么谁将成为下一个开发者最讨厌的浏览器?

答案大概是许多开发者心中倒数第二名的苹果 Safari 浏览器。与其他主流浏览器(Chrome、Edge、Firefox)相比,Safari 在支持现代 Web API 和对 WebRTC 等功能的支持方面较为滞后,这给那些希望能在所有主流浏览器上创建相同产品的开发者带来了许多额外的工作。

(图片来自苹果官网)

对 PWA 设有限制

PWA,即 Progressive Web App,渐进式 Web 应用,这是一种现代浏览器技术,开发者可通过 PWA 创建出一个外观和运行体验都类似于智能手机、平板电脑或台式机上本地应用的网站。

PWA 网站可实现以下功能:隐藏浏览器 UI 的全屏运行;操作系统级别的通知和提醒;设备离线时也能使用;本地数据存储和检索;在手机的主屏幕上安装应用图标;能访问如摄像头、麦克风、USB 端口等硬件功能。

这一切都可以通过所谓的 PWA 技术实现,它既不需要编译,也不需要提交到应用商店进行审核,如今国外社交平台 Twitter 和打车应用 Uber 就是最好的例子。

可苹果 Safari 对 PWA 的支持却拖延了很久,甚至就算支持了这项特性,也对它设有一定限制,开发者根本不能完全实现想要的功能,如允许消息通知和建立主屏幕图标快捷方式等——而这仅是苹果众多限制中的一小部分。

那么为什么要对 PWA 施加限制呢?苹果解释说是为了用户隐私,可大多数人都认为苹果是为了确保 App Store 30% 的抽成。毕竟如果有了功能齐全的 PWA 应用,用户可以实现应用内购的话,苹果就无法从中抽取 30% 的利润了。

此前,关于苹果限制 PWA 的争议还仅限于 Web 开发者社区,但近来由于 Epic 诉讼案以及反垄断调查,这个问题已是人尽皆知。迫于监管压力,未来苹果或许会全面扩展 PWA,但考虑到苹果一贯的强势,最终结果如何还有待观望。

对 WebRTC 等功能的滞后支持

除了对设限 PWA 多有不满,Web 开发者们还曾对 Safari 一直滞后支持其他主流浏览器都有的关键 Web API 和 CSS 功能十分抱怨。

以 WebRTC 为例,其全称为 Web Real-Time Communication(网络实时通信),是一项能够让浏览器支持实时语音会话或视频对话的技术。这一技术前身为 GIPS,由 Global IP Solutions 公司研发,后来谷歌在 2010 年以 6820 万美元的价格将该公司收购并将 GIPS 更名为 WebRTC,次年将其开源。

在谷歌的推动下,WebRTC 技术迅速在各大主流浏览器中应用起来, Chrome、Firefox、Opera 均加入了 WebRTC 大本营,而 Safari 却与一直为人诟病的 IE 一样,始终不支持这项技术。

直到 2017 年,苹果才在 WWDC17 上宣布 Safari 正式支持 WebRTC 技术。这与 Chrome 和 Firefox 等其他主流浏览器支持这项技术的时间差实在有些过大,因此至今都有些人将此作为苹果的一个“嘲点”。

此外,跟 PWA 一样,即使支持 WebRTC,但与其他浏览器相比,WebRTC 在 Safari 上存在很多问题。例如,Safari 曾不支持 VP9 视频编解码器和 WebP 图像压缩格式(目前均已支持)。

解决问题和更新的速度慢

基于以上两个问题,经常有开发者向苹果报告有关 Safari 中实现 Web API 和 CSS 功能中的许多错误,但是,苹果解决问题的速度特别慢。

且不说苹果会不会重视你提出的问题,就算解决了,Safari 也不会像 Chrome 和 Firefox 那样定期自动更新。想让 Safari 快点更新?不好意思,它只能跟着整个操作系统来。换句话说,系统更新有多慢,Safari 解决问题的速度就有慢。这一点上,苹果或许可以向微软学学:同样是系统自带的浏览器,Edge 就采取了自动更新。

不过以上问题的存在并不影响 Safari 是一款优秀浏览器的事实,快速的性能和出色的隐私保护都是其亮点所在。只是 Safari 的这些问题在一定程度上令许多开发者感到头疼,尤其是在如今苹果设备愈发流行的情况下(昨日苹果发布了2021 年第三财季财报,iPhone 销售额增长近 50%),由于 Safari 的不同,他们无法一次性创建出适用于所有浏览器平台的绝佳体验。

那么,你最讨厌哪个浏览器呢?

参考链接:

https://blog.perrysun.com/2021/07/15/for-developers-safari-is-crap-and-outdated/

IE 退出后,苹果 Safari 成为了开发者最讨厌的浏览器?相关推荐

  1. Edge 超越 Safari 成为全球第二大桌面端浏览器!Firefox 爆降致 Chrome 份额再创新高!...

    桌面端 StatCounter 近日发布全球桌面端浏览器 2022 年 3 月统计报告: 微软 Microsoft Edge 浏览器桌面端市场份额从 9.61% 上升至 9.65%, 苹果 Safar ...

  2. ios点击推送闪退_苹果推送iOS 14.2 beta 1:千万别更新,大批应用闪退

    大家好,我是佚名.苹果昨天才推送iOS14 正式版系统.而在今天又推送了iOS 14.2 beta 1 开发者测试版系统.由于这个版本问题非常明显,所以我先说结论: 千万不要更新! 千万不要更新! 千 ...

  3. 苹果Safari浏览器Safari Technology Preview

    Safari Technology Preview for Mac是官方推出的全新苹果Safari浏览器,Safari Technology Preview mac版的logo.界面.功能等各方面都很 ...

  4. C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题

    C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题 参考文章: (1)C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题 ( ...

  5. linux 用户进程结束后 malloc申请的内存会自动释放吗,进程退出后malloc的内存是否会被释放?

    当一个进程退出后,不管是正常退出或者是异常退出,操作系统都会释放这个进程的资源.包括这个进程分配的内存,打开的文件等等. 内存泄露的前提是进程一直在运行:进程一旦退出,所占的整个虚拟内存都被销毁,所有 ...

  6. 程序异常退出后,托盘残留图标清理方法(C#)

    程序猿对于宕机再熟悉不过了,如果一个程序异常退出,那我们只能在Windows日志中找到它的踪迹:如果它是一个托盘程序,异常退出后,它会停留在托盘中久久不能离去,直到我们的鼠标从它身上划过:如果一个程序 ...

  7. safari浏览器横屏怎么设置_如何避免苹果safari自带浏览器“跟踪”你的信息!

    苹果自带的"safari浏览器"正在悄悄"追踪"你的信息,这样做可以有效避免你的隐私信息不被泄露. 说起苹果设备自带的APP,毫无疑问safari浏览器是其中的 ...

  8. iOS如何退出测试软件,如何继续测试iOS应用程序,使用UIAutomation仪器,甚至应用程序退出后?(How to c...

    我有一个应用程序. 有在该应用中,如果点击,退出应用程序的按钮. 我使用的测试仪器UIAutomation应用. 我想测试一下这个按钮. 但是,应用程序退出后,仪器停止给一个例外. 我想要做的是应用程 ...

  9. 刚开完2019WWDC 苹果就被iOS开发者们集体起诉...

    据国外媒体报道,律师事务所Hagens Berman表示,iOS开发者对苹果公司发起了集体诉讼,声称这家科技巨头凭借其App Store垄断了iOS应用市场,并故意利用其垄断地位对那些想要制作应用的开 ...

最新文章

  1. 科技公司合作伙伴清单
  2. DenseNet 测试
  3. HDU - 4641 K-string(后缀自动机)
  4. javascript乘法和加法_js 大整数加法、乘法、除法
  5. php试题库,PHP试题库一
  6. python实现决策树归纳_决策树【python实现】
  7. CSDN积分获取规则
  8. 苹果手机更改照片大小kb,苹果手机怎么把图片缩小 怎么用手机把图片缩小
  9. python数据存储到access_Python操作Access数据库基本步骤分析
  10. 计算机表格入门2013,Access2013从入门到精通
  11. 计算机win7如何加快开机速度,win7如何提高开机速度实现8秒内完成开机【图文】...
  12. java adobe pdf转word_adobe reader如何把PDF转换成word?adobe reader把PDF转换成word教程
  13. JAVA POI导入Excel, 和百分比有关的 百分数格式问题
  14. 面对来势汹汹的AI大潮,你该如何应对?
  15. 十一、BDB ManyToMany
  16. (十二)Linux设置定时任务及开机自启动
  17. 计算机专业考博入学考试科目,北京航空航天大学计算机应用技术考博考试科目.doc...
  18. iphone换android app图标,iPhone 终于能随意修改 App 图标啦
  19. 这就是搜索引擎——搜索引擎索引(2)
  20. Linux文件系统二(虚拟文件系统VFS实现原理)

热门文章

  1. Intermediate Programming: Unity Game Dev Courses(2)- Loot System
  2. Uncaught TypeError: Cannot read properties of undefined (reading ‘push‘)和Uncaught TypeError: Canno
  3. APP兼容性测试的目的和要求是什么?
  4. 项目:图片存储系统(图片服务器)
  5. SpringBoot启停脚本
  6. 探索图像语义分割中的特征融合
  7. Failed to read candidate component class: file 处理
  8. Windows 延缓写入失败及解决方法
  9. Java高级特性-IO流
  10. 5分钟快速 搭建免费好用的图床(Picx +github)