Ở các bài viết trước mình đã hướng dẫn các bạn cách lazyload các scripts bên ba, ở bài viết ngày hôm nay mình sẽ hướng dẫn các bạn cách tối ưu website khi sử dụng Facebook plugins.
Đầu tiên thì chúng ta truy cập vào đường dẫn tới file JS của Facebook nhé.
https://connect.facebook.net/vi_VN/sdk/xfbml.customerchat.js
Tiếp theo bạn tìm các từ khoá liên quan đến đường dẫn ảnh png. Tương tự như ví dụ dưới đây:
.fb_dialog_close_icon{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yq\/r\/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;cursor:pointer;display:block;height:15px;position:absolute;right:18px;top:17px;width:15px}
.fb_dialog_close_icon:hover{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yq\/r\/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent}
.fb_dialog_close_icon:active{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yq\/r\/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent}
#fb_dialog_loader_spinner{animation:rotateSpinner 1.2s linear infinite;background-color:transparent;background-image:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yD\/r\/t-wz8gw1xG1.png);
Và tìm tiếp các từ khoá liên quan đến facebook.com. Ví dụ dưới đây sẽ giúp bạn hiểu:
{"locale":"vi_VN","revision":"1003309171","rtl":false,"sdkab":null,"sdkns":"FB","sdkurl":"https:\/\/connect.facebook.net\/vi_VN\/sdk\/xfbml.customerchat.js"});__d("UrlMapConfig",[],{"www":"www.facebook.com","m":"m.facebook.com","business":"business.facebook.com","api":"api.facebook.com","api_read":"api-read.facebook.com","graph":"graph.facebook.com","an":"an.facebook.com","fbcdn":"static.xx.fbcdn.net","cdn":"staticxx.facebook.com","graph_facebook":"graph.facebook.com","graph_gaming":"graph.fb.gg","graph_instagram":"graph.instagram.com"});__d("JSSDKConfig",[],{"features":{"allow_non_canvas_app_events":false,"error_handling":{"rate":4},"e2e_ping_tracking":{"rate":0.1},"xd_timeout":{"rate":1,"value":60000},"use_bundle":false,"should_log_response_error":true,"popup_blocker_scribe_logging":{"rate":100},"https_only_enforce_starting":2538809200000,"https_only_learn_more":"https:\/\/developers.facebook.com\/articles\/post\/2018\/06\/08\/enforce-https-facebook-login\/","https_only_scribe_logging":{"rate":1},"log_perf":{"rate":0.001},"use_x_xd":{"rate":100},"cache_auth_response":{"rate":0}
Tại sao chúng ta lại phải lấy đoạn này thì ở bước tiếp theo bạn sẽ hiểu được lý do tại vì sao.
Có hai thành phần trong file JS mà bạn cần quan tâm, đó chính là liên kết hình ảnh và các liên kết của Facebook, liên kết hình ảnh chính là đoạn css ở trên giờ chúng ta tiến hành biên dịch lại liên kết của hình ảnh nhé!
Với class fb_dialog_close_icon và các class cùng tên:
https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png
Với id fb_dialog_loader_spinner:
https://static.xx.fbcdn.net/rsrc.php/v3/yD/r/t-wz8gw1xG1.png
Giờ chúng ta chuyển qua bước tiếp theo để sử dụng <link rel="preload" .>
và
<link rel="dns-prefetch" .>
nhé.
Vẫn câu lệnh Preload
quen thuộc mà chúng ta đã sử dụng ở các bài viết trước,
cú pháp quen thuộc là:
<html>
<head>
<title>Demo</title>
<link
rel="preload"
href="https://connect.facebook.net/vi_VN/sdk/xfbml.customerchat.js"
as="script"
/>
<link
rel="preload"
href="https://static.xx.fbcdn.net/rsrc.php/v3/yq/r/IE9JII6Z1Ys.png"
as="image"
/>
<link
rel="preload"
href="https://static.xx.fbcdn.net/rsrc.php/v3/yD/r/t-wz8gw1xG1.png"
as="image"
/>
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//www.facebook.com" />
<link rel="dns-prefetch" href="//graph.facebook.com" />
<link rel="dns-prefetch" href="//static.xx.fbcdn.net" />
<link rel="dns-prefetch" href="//staticxx.facebook.com" />
</head>
<body>
.
<script
src="https://connect.facebook.net/vi_VN/sdk/xfbml.customerchat.js"
async="1"
></script>
</body>
</html>
Ngoài ra còn một số mẹo nâng cao khác như:
<link rel="preload" />
với thành phần này thì hầu
như là không được.Chúc các bạn thành công.