网站首页 > 基础教程 正文
您可能已经注意到您现在访问的每个网站似乎都包含一些关于使用 cookie 的通知。
今天我才知道,如果您的网站接收来自欧盟的访问者,那么您可能需要一个 cookie 同意横幅,以保持欧盟法规的良好一面。
欧盟关于 cookie 的规则最初于 2011 年通过并于 2018 年随着 GDPR 的扩展而扩展,本质上要求您获得访问者的“明确、知情同意”,才能使用跟踪用户数据的 cookie。从技术上讲,这并不是每个网站,但随着谷歌分析、Facebook Pixel、社交媒体分享按钮等工具的普及,您的网站很有可能至少使用其中一种方式跟踪 cookie。
所以在实践中,大多数接收来自欧盟的访问者的网站都需要一个 cookie 同意横幅。 在这个全球化的世界里,大多数网站都是如此,这样做会减少不必要的麻烦。
有很多种办法给网站添加这种Cookie的弹框,你可以自己实现,也可以使用第三方服务,比如Getsitecontrol, 一般都是收费的,可以去搜一下他们的文档,添加一段script,然后就可以配置样式和内容了,挺简单。这里想提顺便提一下的就是,添加这种东西,往往会影响网站的性能, 比如以下三个方面:
- 最大内容绘制 (LCP):大多数 cookie 弹框通知都相当小,因此通常不包含页面的 LCP 元素。 但是,这可能会发生——尤其是在移动设备上。 在移动设备上,cookie 通知通常占据屏幕的较大部分。 这通常发生在 cookie 通知包含大量文本时(文本块也可以是 LCP 元素)。
- 首次输入延迟 (FID):一般而言,您的 cookie 同意解决方案本身对 FID 的影响应该很小——cookie 同意需要很少的 JavaScript 执行。 但是,这些 cookie 启用的技术(即广告和跟踪脚本)可能会对页面交互性产生重大影响。 延迟这些脚本直到接受 cookie 可以作为一种减少首次输入延迟 (FID) 的技术。
- 累积布局移位 (CLS):Cookie 同意通知是布局转换的常见来源。
最佳实践就是,
你需要async load脚本:
<script src="https://cookie-notice.com/script.js" async>
你要preconnect脚本所在域名:
<link rel="preconnect" href="https://cdn.cookie-notice.com/">
一些网站会受益于使用预加载资源提示来加载他们的 cookie 通知脚本。 预加载资源提示通知浏览器对指定资源发起早期请求。
<link rel="preload" href="https://www.cookie-notice.com/cookie-script.js">
自定义第三方 cookie 通知的外观和感觉可能会产生额外的性能成本。 例如,第三方 cookie 通知并不总是能够重复使用页面上其他地方使用的相同资源(例如,网络字体)。 此外,第三方 cookie 通知倾向于在长请求链的末尾加载样式。 为避免任何意外,请注意您的 cookie 通知如何加载和应用样式和相关资源。
猜你喜欢
- 2024-11-26 工作中,前端开发要看项目,怎么查看别人的js项目代码
- 2024-11-26 Cookie 在爬虫中的应用
- 2024-11-26 55个JS代码让你轻松当大神
- 2024-11-26 操作cookie
- 2024-11-26 9个原生js库助力前端开发,你都用过吗?
- 2024-11-26 Selenium4+Python3系列(七) Iframe、常见控件、JS、Cookie操作
- 2024-11-26 浅谈JavaScript的用处
- 2024-11-26 Web安全:XSS怎么实现?Cookie 劫持如此简单,你的网站安全吗?
- 2024-11-26 Cookies和Session的区别和理解
- 2024-11-26 cookie是什么?有什么用?cookie详解,一篇文章彻底搞懂cookie
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)