Mark Ku's Blog

別讓第三方的 JS,拖慢網站首頁加載的速度 - Facebook Chat SDK 串接優化筆記

問題起緣

許多網站都會串接第三方的JS,但在某次串接完 Facebook Chat SDK 後,發現首頁的載入變得非常的慢,並決定著手優化。
Facebook Messenger聊天外掛登入介面

身為軟體開發人員的我,又打開了開發者工具,做了對比。

從 Network Tab 中,我們可以得知來自 fbcdn 的檔案,發現就有1.8 mb 網路流量,解壓縮後的檔案大小為7.2 mb,心想這未免也太肥大,難怪會慢。 開發者工具網路分頁顯示FB SDK載入1.8MB

  • 額外補充:transferred over network是通過網路加載的資源尺寸,而resources loaded by the page 是前端頁面加載的所有資源經過解壓之後的原始大小。

優化步驟

SPA 網頁本身首次載入就很肥大,為了避免影響用戶體驗,雖然我也可以做個按鈕,按下才開始載入客服系統,但我覺得還是太肥大了,最後我決定做一個客服按鈕,直接開啟 Facebook 的連結。

1.首先從粉專 > 設定 > 訊息 > 取得你的 Messenger 網址

Facebook粉專訊息設定頁面顯示Messenger網址
Facebook粉專訊息設定頁面顯示Messenger網址

2. 封裝一個元件

<template>
   <a href="https://m.me/letsgogofruit" target="_bank">
      <div class="facebook-live-chat">
        <SvgIcon icon-name="messenger" class="w-52 h-52" />
      </div>
    </a>
</template>

<style lang="scss">
.facebook-live-chat{
  position: fixed;
  right: 30px;
  bottom: 160px;
  z-index: 8;
  border: none;
  border-radius: 100%;  
  
  font-size: 22px;
  text-align: center;
  // display: none;  
  cursor: pointer;

  svg{
    &:hover{
      filter: drop-shadow(0 0 2px rgba(#fff, 0.5));
    }
  }

  @media (max-width: 577px) {
    
      svg{
        width: 40px;
        height:40px;
      }  
      right:20px;  
      // bottom: 130px;
      //  解決 ios tab bar 問題
    // iOS < 11.2
    bottom: calc(172px + constant(safe-area-inset-bottom));

    // iOS >= 11.2
    bottom:calc(172px + env(safe-area-inset-bottom));
    }  
}

</style>

成果

網站首頁文章預覽與右側Facebook Messenger圖示
網站首頁文章預覽與右側Facebook Messenger圖示
iPhone 12 Pro 模擬器顯示網頁底部導覽列成果
iPhone 12 Pro 模擬器顯示網頁底部導覽列成果

作者

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可

熱門文章

View all
Mark Ku
··603

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··440

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··323

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··239

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··222

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取
Mark Ku
··199

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調