Google PageSpeed 第三方聊天加载问题
Posted
技术标签:
【中文标题】Google PageSpeed 第三方聊天加载问题【英文标题】:Google PageSpeed third party chat loading issue 【发布时间】:2021-08-26 12:10:36 【问题描述】:我正在使用下面的代码来执行实时聊天代码,通过它我添加了一个 div 并且聊天框显示哪个工作正常。
try
// LIVECHAT
//if (matchMedia('only screen and (min-width: 1025px)').matches)
//
var __lc = ;
__lc.license = XXXXXX;
(function ()
var lc = document.createElement("script");
lc.type = "text/javascript";
lc.async = true;
lc.src =
("https:" == document.location.protocol ? "https://" : "http://") +
"cdn.livechatinc.com/tracking.js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(lc, s);
)();
var LC_API = LC_API || ;
LC_API.open_chat_window = function ()
$(".chatbox").show();
$("#chat-widget-container").show();
;
LC_API.on_chat_window_minimized = function ()
$(".chatbox").show();
$("#chat-widget-container").hide();
;
LC_API.on_chat_window_opened = function ()
$(".chatbox").hide();
$("#chat-widget-container").show();
;
LC_API.on_chat_window_hidden = function ()
$(".chatbox").show();
$("#chat-widget-container").show();
;
//
catch (err)
$(".openChat").on("click", function (event)
LC_API.open_chat_window();
return false;
);
但是当我去 Google Pagespeed Insights 并在手机 https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fwww.rosterelf.com%2F 中跟踪网站时,我的排名一直很低。
交互时间 11.9 秒
如果我评论上面的代码,那么我的百分比会上升到 65 以上。
那么有人可以指导我如何优化这个脚本来解决这个问题吗?
谢谢
【问题讨论】:
TTI 正在计算加载所有 javascript 库所需的时间,如果我没记错的话。 cdn.livechatinc.com/tracking.js 这是脚本中添加的第三方cdn,如果您可以删除它,则速度将提高或下载然后使用它,然后速度也会提高。 @zanderwar 它的 12.7 秒。它是由于聊天..一旦我删除聊天脚本并减少它。 【参考方案1】:是的,您可以优化脚本下载cdn链接https://cdn.livechatinc.com/tracking.js
并保存在项目文件夹中
lc.src =
("https:" == document.location.protocol ? "https://" : "http://") +
"cdn.livechatinc.com/tracking.js";
替换这个
lc.src ="folder_name/tracking.js";
然后页面速度增加。
【讨论】:
我试过没有成功。分数仍然没有提高。【参考方案2】:当我们在页面上加载javascript
时,许多事情开始发生。首先,浏览器下载这个文件,因为它是一个 javascript 文件,它开始执行它并停止所有其他的事情,比如进一步解析页面。
在您的情况下,同样的事情正在发生,它正在增加您页面的加载时间。
此外,您可以看到dnslookup
花费了很多时间,因此您也对此进行了改进。现在按照给定的步骤来缩短加载时间。
步骤:
-
预连接到所需的源。考虑添加
preconnect
或dns-prefetch
资源提示,以建立与重要第三方来源的早期连接。
在加载 javascript 文件时使用 defer
和 async
,这样 js 执行不会影响页面加载。
通过预加载某个资源,您是在告诉浏览器您希望在浏览器发现它之前尽快获取它,因为您确信它对当前页面很重要。所以预加载你的关键 js。语法 - <link rel="preload" as="script" href="critical.js">
在这里您可以看到加载时不需要出现聊天框。因此,您可以延迟 javascript 加载以提高页面速度。
按照上述步骤改善受 javascript 影响的页面性能
更多提高页面速度的技巧:
-
延迟加载图像,以便在滚动到时下载图像。
预加载外部字体文件和关键资源。
使用 chrome 开发工具覆盖选项卡来识别未使用的
CSS
和 JS
使用cache-policy
提供所有内容。这将帮助您从缓存中获取静态资源,从而缩短加载时间。
尝试使用快速 CDN 来提供静态文件。
最重要的提示 -
从 URL 我可以看到您的网站容易受到 XSS 攻击。因此,请查看这一点,并在您的 security headers 上工作,例如 Content Security Policy (CSP)
。
有关更多示例,请参阅此网站 - https://codebulbs.com 并查看其来源。您将从本网站的源代码中学到很多东西。
【讨论】:
感谢您的回答.. 但我的问题是.. 我应该如何或应该在上面的脚本中更改或更新什么? 您无法通过更改上述脚本来优化性能,因为最后浏览器将下载脚本并在运行时执行它。这就是为什么我建议您遵循preconnect
等其他资源的做法,以便在下载脚本时不会浪费时间进行 DNS 查找,从而优化性能。检查上图中的 DNS 查找时间。
此外,如果您预加载该关键 js,那么它将在浏览器与页面交互时下载。因此,您将获得优化的速度指数和 FCP。您应该首先获取有关核心网络生命力的更多信息。
这个问题更多涉及到core web vitals的优化。
感谢您,因为您通过回答我的问题来支持我 .. 这是我的礼貌 .. 接受您的回答,那么我需要一个答案,如何更新当前代码 .. 这是一个理想的答案我希望能够实现我想要的。我已经知道您提到的大部分问题,但是如果您可以通过更新我当前的代码来指导我解决问题,那将是理想的亲爱的。谢谢以上是关于Google PageSpeed 第三方聊天加载问题的主要内容,如果未能解决你的问题,请参考以下文章
前端性能优化插件 --- PageSpeed Insights
设置 HTTP 缓存过期,由 Google PageSpeed 推荐