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 花费了很多时间,因此您也对此进行了改进。现在按照给定的步骤来缩短加载时间。

步骤:

    预连接到所需的源。考虑添加preconnectdns-prefetch 资源提示,以建立与重要第三方来源的早期连接。 在加载 javascript 文件时使用 deferasync,这样 js 执行不会影响页面加载。 通过预加载某个资源,您是在告诉浏览器您希望在浏览器发现它之前尽快获取它,因为您确信它对当前页面很重要。所以预加载你的关键 js。语法 - <link rel="preload" as="script" href="critical.js">

在这里您可以看到加载时不需要出现聊天框。因此,您可以延迟 javascript 加载以提高页面速度。

按照上述步骤改善受 javascript 影响的页面性能

更多提高页面速度的技巧:

    延迟加载图像,以便在滚动到时下载图像。 预加载外部字体文件和关键资源。 使用 chrome 开发工具覆盖选项卡来识别未使用的 CSSJS 使用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 推荐

Google PageSpeed Tools 性能测试分析

哪个用户代理使用 Google PageSpeed?

在添加的每个实例上在弹性 beantalk 上安装 google mod-pagespeed

sh 如何在Debian / Ubuntu上安装Nginx和Google PageSpeed