提问人:user1946932 提问时间:10/13/2023 更新时间:10/13/2023 访问量:64
基于 Web 的电子邮件客户端(例如 Gmail)是否支持链接预取?
Do web based email clients (e.g., Gmail) respect link prefetch?
问:
https://caniuse.com/?search=prefetch 介绍如何将以下内容放在 HTML 页面的分区中:
<link rel="prefetch" href="(url)">
大多数基于 Web 的 HTML 电子邮件客户端是否支持预取?
例如,Gmail
答:
如果预取代码位于正文中,而不是头部部分,则 Gmail 和其他公司可能不会将其删除:
https://html.spec.whatwg.org/multipage/links.html#body-ok
电子邮件的工作方式是,像Gmail这样的电子邮件服务器将获取您的代码,根据严格的白名单将其证券化,运行许多事情,例如图像缓存,然后将您的代码粘贴到您登录的页面上。所以他们正在做大部分的表演工作。这意味着我们不希望电子邮件中普遍支持预取。
其次,据说预取是对浏览器的提示,表明您可能会使用该资源 - 就像在单页应用程序 (SPA) 中一样,您不会直接加载所有内容。电子邮件不是 SPA,而是始终直接加载所有内容。
大多数电子邮件客户端甚至不支持(https://www.caniemail.com/features/html-link/),更不用说 JavaScript 了!那么你到底要预取什么!?<link>
我不是预取的普通用户,但我注意到某些实现可能需要 JavaScript,或者与 JS 配合得更好,因此它可能与电子邮件完全无关(不确定):https://www.digitalocean.com/community/tutorials/html-preload-prefetch。
我已经看到了外部 CSS 文件的一个用例,那就是 Apple Mail,它确实支持 ,其中 CSS 文件只是交互式样式,因此不需要在其他限制性更强的电子邮件客户端上加载。<link>
也许是字体?同样,唯一可能的地方是macOS和其他一些字体:https://www.caniemail.com/features/css-at-font-face/。Gmail 仅支持两种字体(Roboto 和 Google Sans),无论如何,它们都预先缓存在他们的系统中。我尝试在 Apple Mail 中对大量 Google 字体进行压力测试加载,如果我在标签上将他们的测试代码从 rel=“stylesheet” 更改为,字体就不会加载。如果我删除了他们的代码,那就没有区别了——所有字体都以高性能加载。<link>
<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
也许是图像?无论如何,Gmail 和 Yahoo Mail 等主要电子邮件客户端都会预先缓存您的图像。
因此,总而言之,它既没有必要,也没有任何证据表明它即使在Apple Mail中也能产生任何明显的效果(大约是唯一可能产生影响的)。
评论