您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么通過JavaScript代碼優化提高網站和渲染速度”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么通過JavaScript代碼優化提高網站和渲染速度”吧!
你為網站編寫的內容越多,加載所需的時間就越長。因此,在開發網站時,必須使用 JavaScript Code Optimizer 優化 JavaScript 代碼。它將幫助你刪除開發環境中未使用的功能、特性和代碼。
Google Clouser Compiler 和 Uglify JS 是最好的 JavaScript 代碼優化工具。這些工具刪除逗號、注釋和死代碼。
優化前的代碼
function test(mode)
{
var parent = node.parentNode;
if(0)
{
alert(“Hello. This is the code before optimization.”);
}
else
{
alert (“Hello. Greetings for developers.”);
}
return;
alert(1);
}
優化后的代碼
function test()
{
alert (“Hello. Greetings for developers.”);
}
那么,在這里,我們做了什么?
我們刪除了變量 parent,因為它永遠不會再被使用。
此外,我們刪除了 False if() {...} 因為它是一個“死代碼”。
退貨被刪除;它也是死代碼。
縮小和混淆 JavaScript 代碼方法用于轉換 JavaScript。但是,這兩種方法是不同的。縮小可以減少文件的大小以減少頁面加載時間。
換行符、額外空格、注釋等一些因素會增加 JavaScript 文件的大小并影響頁面加載速度。通過代碼壓縮,您可以解決此問題。即使您的所有 JavaScript 代碼都只包含在一個字符串中,您的機器也能夠讀取和啟動縮小的代碼。
我們知道,毫無疑問,垃圾收集在 JavaScript 中是自動執行的,您不能忽略內存部分。所以,作為前端開發者,不得不使用WeakSet、WeakMap這樣的功能來解決內存泄漏的問題。
因此,你可以使用 Chrome Dev Tools 來避免內存泄漏問題。
循環總是消耗大量時間來加載項目,無論其大小如何。因此,你應該很快打破循環的大循環。但是,你可以使用兩個關鍵字來執行此過程:break和continue。
例如,如果你不使用 break 關鍵字;這個循環將執行 100 次。
let arr = new array(100);
arr[36] = ‘found’;
for (let i = 0; i < arr.length; i++)
{
if(arr[i] === ‘found’);
break;
}
JavaScript 異步加載是同步加載的一部分。它表示你的網站現在已準備好以多流方式加載。
當瀏覽器遇到<script src="some.js"></script> 時,會在 JavaScript 執行時停止創建 DOM 和 CSSOM 模型。因此,很多時候,JavaScript 代碼是在主要的 HTML 代碼之后編寫的。
好吧,為了消除你的疑慮,讓我們在這里查看示例:
<html>
<head>
<script src="big.js">
</script>
</head>
<body> This text will not be visible until big.js is loaded. </body>
</html>
現在,在 JavaScript 代碼中,你可以使用 async 標記來確保 DOM 模型是并行創建的,并且不會在 JavaScript 加載或執行時停止。
如果你的 JavaScript 需要操作 HTML 或 CSS 或以特定順序加載腳本(依賴于 jQuery 的庫),請謹慎使用。
讓我們看另一個例子;如果你在你的網站上使用流行的 bxSlider 和 CDN for jQuery,你可以將給定的代碼添加到你的 HTML 中。
<!-- jQuery library (served from Google) -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<!-- bxSlider Javascript file -->
<script src="/js/jquery.bxslider.min.js"></script>
<!-- bxSlider CSS file -->
<link href="/lib/jquery.bxslider.css" rel="stylesheet">
在上面的代碼中,我們可以看到 bxSlider 是本地的,而 Google CDN 加載的是 jQuery。因此,如果我們嘗試向字符串(包括 jQuery)添加 async 標記,如果jQuery.bxslider.min.js在jQuery.min.js之前加載,則bxSlider可能會發生錯誤。
因此,需要另一個標簽—— defer。
如果瀏覽器遇到帶有 JavaScript 代碼的 defer 標記,則不會加載 DOM 和 CSSOM 模型。一旦 DOM 和 CSSOM 模型完成,每個defer標簽腳本都會立即運行。任何腳本都將按照您編碼的順序執行。
<script src="1.js" defer></script>
<script src="2.js" defer></script>
在上面的例子中,2.js 不會被執行,直到 1.js 被加載。
這里, defer 和 async 標簽準備好只對外部腳本執行(帶有 src=”” 標簽)。如果你將它們用于像<Script>...</Script>標簽這樣的內部腳本,這些標簽將被避免。
HTTP 協議的最先進和最新版本之一是 HTTP/2。它通過提高 JavaScript 代碼性能為您提供許多功能。這將導致網站速度的提高。
HTTP/2 一起處理多個請求和響應。因此,它有助于提高 JavaScript 的加載時間。
如果你處于進退兩難的境地,你可以檢查這些協議之間的區別:HTTP/2 與 HTTPS。另一個測試是Aka`mai HTTP/2 演示。
加載過程中的元素組織是 JavaScript 代碼優化的一個重要技巧。在這里, <head> 部分中的每個元素都是預先加載的,因此它會在用戶在 Web 瀏覽器上看到任何內容之前出現在用戶的屏幕上。因此,管理訂單以在屏幕上顯示結果至關重要。
在這里,頁面的無組織元素總是向用戶顯示一個白頁。因此,以適當且合乎邏輯的方式組織所有元素非常重要。它肯定有助于提高用戶參與度。
通過深入研究,我們得出結論,如何加載訂單會影響用戶關注度。
一個屏幕每秒更新 60 次。此數據顯示單幀顯示在屏幕上需要多長時間 (1000/60=16)。人們擅長監控運動,如果運動的期望沒有得到滿足,無論是通過可變幀速率還是周期性暫停,他們都會感到沮喪。
如果它在此時間范圍內響應用戶操作,他們會認為結果是立竿見影的。
行動和反應之間的任何聯系都已被打破。
用戶會遇到輕微但可預測的延遲。
對于大多數用戶來說,加載頁面或切換視圖是一項任務。
用戶在 1000 毫秒(1 秒)后失去對他們正在處理的任務的關注。
用戶很可能會感到沮喪并放棄任務;他們以后可能會也可能不會回來。
好吧,Google 稱其為RAIL 模型。
在 CDN 的幫助下,你可以顯著提高網站的速度和性能。當您使用 CDN 時,你將網站的靜態內容鏈接到全球范圍內的擴展服務網絡。好吧,如果您的網站迎合海外受眾,這一點非常重要。
CDN 從最近的服務器加載您的數據并呈現給訪問者。在 CDN 的幫助下,你的文件將自動壓縮或優化,以便為訪問者快速交付。這使事情運行得更快。
好吧,你可以比較各種 CDN,看看哪一種最適合你。
當我們將 CSS3 與其之前的版本 1.0 和 2.0 進行比較時,舊版本的功能不那么強大,并且需要額外的 JavaScript 來實現更高級的樣式效果。但是,CSS3 提供了許多需要較少 JavaScript 的功能。此外,CSS 可以預編譯,因此它在 CPS 上消耗的內存比 JavaScript 少。
讓我們在這里考慮一個例子。
無需任何 JavaScript,你就可以在 CSS3 和 HTML5 中添加CSSSlider。
這是一個嘗試:
HTML:
<!DOCTYPE html>
<html lang="en"></html>
<head></head>
<meta charset="UTF-8">
<title>CSS Slider</title>
<body></body>
<base href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/4273/">
<div id="slider"></div>
<figure></figure>
<img src="apple.jpg" alt="">
<img src="strawberry.jpg" alt="">
<img src="cherry.jpg" alt="">
<img src="pineapple.jpg" alt="">
<img src="kiwi.jpg" alt="">
CSS:
@keyframes slidy
{
0% { left: 0%; }
20% { left: 0%; }
25% { left: -100%; }
45% { left: -100%; }
50% { left: -200%; }
70% { left: -200%; }
75% { left: -300%; }
95% { left: -300%; }
100% { left: -400%; }
}
body { margin: 0; }
div#slider { overflow: hidden; }
div#slider figure img { width: 20%; float: left; }
div#slider figure
{
position: relative;
width: 500%;
margin: 0; left: 0 text-align: left;
font-size: 0; animation: 30s slidy infinite;
}
代碼測試是分析內存泄漏等性能問題并對其進行修補的重要因素。
那么,你可以實現給定的 JavaScript 測試工具來增強 JavaScript 性能。
控制臺時間()
Console.time()用于跟蹤操作執行的時間。
最初,你必須簡單地調用:
控制臺時間(標簽);
在這里,“ label ”可以是你的計時器的唯一名稱。在該過程結束時,你可以調用:
控制臺時間結束(標簽);
在這里,將從開始到結束監視操作時間。
YSlow是一個開源性能工具。它分析你的網站性能并提供優化提示。您的網站將被此工具調用,并將其性能與雅虎高性能網站的標準進行比較。
該工具將執行您的網站并將其性能與雅虎高性能網站的標準進行比較。但是,它會給你一個介于 0% 和 100% 之間的分數。
JSFiddle.net是一個在您的 Web 瀏覽器中執行的 Web 開發編碼環境。
它支持:
JavaScript、HTML、CSS 和 CoffeeScript
React、Vue 和 jQuery 的樣板
能夠演示代碼片段并共享它們以進行代碼協作
GitHub 問題的簡單錯誤報告
感謝各位的閱讀,以上就是“怎么通過JavaScript代碼優化提高網站和渲染速度”的內容了,經過本文的學習后,相信大家對怎么通過JavaScript代碼優化提高網站和渲染速度這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。