关于即将宣布对Apple Safari的智能跟踪预防( ITP )进行更改的公告的困惑,导致指控苹果“在起飞时”故意破坏销毁渐进式Web应用程序 (PWA)。 事实证明并非如此。 但是,这些更改仍然对Web开发人员和营销人员产生了严重影响。
由于浏览器支持可能会与现代网站一起使用的功能各不相同,因此开发人员面临众多挑战。 处理如此多的差异总是令人生畏。 复杂性的增加进一步影响了广泛服务的部署。 如果将Safari中的PWA应用程序支持限制在7天之内,那么它将严重阻碍在激动人心的领域取得进展,而该领域需要花费大量的精力。
经过5年的开发,基于JavaScript的PWA为开发人员提供了扩展网站内容以离线加载以及在线内容刷新使用JavaScript存储的本地文档的机会。 不幸的是,有些滥用了将存储从cookie扩展到“ localStorage”和应用程序缓存存储的功能,以跟踪个人识别变量。
如果这种滥用导致所有存储空间只有7天,那将是可耻的。 当然indexedDB API和localStorage受此策略更改的影响,开发人员需要考虑到这一点。 苹果已经明确阐明了其在网络应用服务工作者注册和缓存方面的立场。
Safari的脚本可写存储
通过cookie可用的存储空间非常有限,并且由于ITP政策涉及隐私和安全性的原因,在7天后删除cookie是合理的。 扩展该策略以也删除“脚本可写存储”是一个合乎逻辑的下一步,除了列出“ Service Worker注册和缓存”的示例对PWA开发人员发出了警告。
Safari关于cookie的政策不是严格的7天时间限制。 它涉及最多七个未使用天的计数器。 这意味着,每当用户打开Safari并访问您的网站时,您的Cookie和脚本可写存储的7天计数器就会重置为另外7天。 当用户不使用Safari时,空白日子不会对您不利。
当他们打开Safari并在某天不访问您的网站的情况下浏览时,几天就会被添加到您的理货中。 您有七个这样的日子,直到您的cookie和所有“脚本可写存储”被删除。 导致您对网站的不活跃是对您不利的因素。 用户将需要重新访问您的站点,以便您能够写入存储并从新计数器开始。
通过PWA,您将获得无限的日子。
对于PWA而言,这还不够好。 苹果公司意识到这一点。
通过PWA的工作方式,将您的应用添加到主屏幕后,它将永远不会运行7天。 这是因为Safari本身并未加载您的应用程序(即使启动器调用了Safari Webkit的WebView对象 )。
启动器有其自己的计数器,该计数器与Safari的计数器完全分开,每个应用程序外壳程序都在其自己独立的进程中运行。 应用程序的自引用计数器只能在每次使用时重置自身。 由于它每次都会重置自己,因此永远不会打开另一个应用程序,因此除非用户删除您的应用程序,否则您将获得无限存储空间。
值得注意的是,Webkit团队以注解解决了这一困惑:“如果您的Web应用程序确实删除了网站数据,请告知我们,因为我们认为这是一个严重的错误。 Intelligent Tracking Prevention并不是要删除Web应用程序中第一方的网站数据。”
我们为什么要关心呢?
PWA的开发和使用正在加速发展。 作为Google发起的项目,Safari支持对其成功至关重要。 Google工程师是那些严重关注Safari新政策变更的人。 最初认为在只有7天未使用生命周期的情况下,“脚本可写存储”一词威胁到这种成功。
ITP可能不打算删除包括PWA主屏幕应用程序在内的第一方关系中的数据。 但是,他们的目的是进一步限制Safari中的默认隐私,以仅真正启用可靠的第一方关系,并在7天的计数器后清除所有未使用的数据。 至少现在,营销人员知道在Safari中如何计算自己的日子。
SEO的更多开发技巧
- 我们的开发人员SEO专栏
- Safari的7天脚本可写存储空间上限对PWA开发人员意味着什么
- SEO编码:使用JavaScript跟踪COVID-19
- SEO 101的编码:了解源代码,压缩代码和编译后的代码