整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          前端:JS延長加載的方式有哪些?

          么是JS延遲加載?

          JS延遲加載,也就是等頁面加載完成之后再加載JavaScript文件

          為什么讓JS實現延遲加載?

          js的延遲加載有助于提高頁面的加載速度。

          Js延遲加載的方式有哪些?一般有以下幾種方式:

          ·defer屬性

          ·async屬性

          ·動態創建DOM方式

          ·使用jQuery的getScript方法

          ·使用setTimeout延遲方法

          ·讓JS最后加載

          1、defer屬性

          HTML 4.01為<script>標簽定義了defer屬性。標簽定義了defer屬性元素中設置defer屬性,等于告訴瀏覽器立即下載,但延遲執行標簽定義了defer屬性。

          用途:表明腳本在執行時不會影響頁面的構造。也就是說,腳本會被延遲到整個頁面都解析完畢之后再執行在<script>元素中設置defer屬性,等于告訴瀏覽器立即下載,但延遲執行

          <!DOCTYPE html>
          <html>
          <head>
          	<script src="test1.js" defer="defer"></script>
          	<script src="test2.js" defer="defer"></script>
          </head>
          <body>
          <!--這里放內容-->
          </body>
          </html>

          說明:雖然<script>元素放在了<head>元素中,但包含的腳本將延遲瀏覽器遇到</html>標簽后再執行HTML5規范要求腳本按照它們出現的先后順序執行。在現實當中,延遲腳本并不一定會按照順序執行defer屬性只適用于外部腳本文件。支持HTML5的實現會忽略嵌入腳本設置的defer屬性

          2、async屬性

          HTML5 為<script>標簽定義了async屬性。與defer屬性類似,都用于改變處理腳本的行為。同樣,只適用于外部腳本文件。標簽定義了async屬性。與defer屬性類似,都用于改變處理腳本的行為。同樣,只適用于外部腳本文件。

          目的:不讓頁面等待腳本下載和執行,從而異步加載頁面其他內容。異步腳本一定會在頁面 load 事件前執行。不能保證腳本會按順序執行

          <!DOCTYPE html>
          <html>
          	<head>
          		<script src="test1.js" async></script>
          		<script src="test2.js" async></script>
          	</head>
          <body>
          <!--這里放內容-->
          </body>
          </html>

          async和defer一樣,都不會阻塞其他資源下載,所以不會影響頁面的加載。

          缺點:不能控制加載的順序

          3、動態創建DOM方式

          //這些代碼應被放置在</ body>標簽前(接近HTML文件底部)
          <script type="text/javascript">
          	function downloadJSAtOnload() {
          		varelement = document .createElement("script");
          		element.src = "defer.js";
          		document.body.appendChild(element);
          	}
          	if (window. addEventListener)
          		window.addEventListener("load" ,downloadJSAtOnload, false);
          	else if (window.attachEvent)
          		window.attachEvent("onload", downloadJSAtOnload) ;
          	else
          		window. onload =downloadJSAtOnload;
          </script>

          4、使用jQuery的getScript()方法

          $.getScript("outer.js" , function(){	//回調函數,成功獲取文件后執行的函數
          	console.log(“腳本加載完成")
          });

          5、使用setTimeout延遲方法的加載時間延遲加載js代碼,給網頁加載留出更多時間

          <script type="text/javascript" >
          	function A(){
          		$.post("/1ord/1ogin" ,{name:username,pwd:password},function(){
          			alert("Hello");
          		});
          	}
          	$(function (){
          		setTimeout('A()', 1000);	//延遲1秒
          	})
          </script>

          6、讓JS最后加載

          把js外部引入的文件放到頁面底部,來讓js最后引入,從而加快頁面加載速度例如引入外部js腳本文件時,如果放入html的head中,則頁面加載前該js腳本就會被加載入頁面,而放入body中,則會按照頁面從上倒下的加載順序來運行JavaScript的代碼。所以我們可以把js外部引入的文件放到頁面底部,來讓js最后引入,從而加快頁面加載速度。

          上述方法2也會偶爾讓你收到Google頁面速度測試工具的“延遲加載javascript”警告。所以這里的解決方案將是來自Google幫助頁面的推薦方案。

          //這些代碼應被放置在</body>標簽前(接近HTML文件底部)
          
          <script type= "text/javascript">
          	function downloadJSAtonload() {
          		var element = document.createElement("script");
          		element.src = "defer.js";
          		document.body.appendChild(element);
          	}
          	if (window.addEventListener)
          		window.addEventListener("load", downloadJSAtOnload, false);
          	else if (window.attachEvent )
          		window.attachEvent("onload", downloadJSAtonload);
          	else window.onload = downloadJSAtOnload;
          </script>

          這段代碼意思等到整個文檔加載完后,再加載外部文件“defer.js”。

          使用此段代碼的步驟:

          6.1)復制上面代碼

          6.2)粘貼代碼到HTML的標簽前 (靠近HTML文件底部)

          6.3)修改“defer.js”為你的外部JS文件名

          6.4)確保文件路徑是正確的。例如:如果你僅輸入“defer.js”,那么“defer.js”文件一定與HTML文件在同一文件夾下。

          注意:

          這段代碼直到文檔加載完才會加載指定的外部js文件。因此,不應該把那些頁面正常加載需要依賴的javascript代碼放在這里。而應該將JavaScript代碼分成兩組。一組是因頁面需要而立即加載的javascript代碼,另外一組是在頁面加載后進行操作的javascript代碼(例如添加click事件。

          喜歡互聯網的一點是在互聯網放置靜態頁面是如此簡單。今天有人問我該怎么做,所以我想我會快速地寫下來!

          -- Julia Evans(作者)

          我喜歡互聯網的一點是在互聯網放置靜態頁面是如此簡單。今天有人問我該怎么做,所以我想我會快速地寫下來!

          只是一個 HTML 頁面

          我的所有網站都只是靜態 HTML 和 CSS。我的網頁設計技巧相對不高( https://wizardzines.com 是我自己開發的最復雜的網站),因此保持我所有的網站相對簡單意味著我可以做一些改變/修復,而不會花費大量時間。

          因此,我們將在此文章中采用盡可能簡單的方式 —— 只需一個 HTML 頁面。

          HTML 頁面

          我們要放在互聯網上的網站只是一個名為 index.html 的文件。你可以在 https://github.com/jvns/website-example 找到它,它是一個 Github 倉庫,其中只包含一個文件。

          HTML 文件中包含一些 CSS,使其看起來不那么無聊,部分復制自 https://example.com 。

          如何將 HTML 頁面放在互聯網上

          有以下幾步:

          1. 注冊 Neocities 帳戶
          2. 將 index.html 復制到你自己 neocities 站點的 index.html 中
          3. 完成

          上面的 index.html 頁面位于 julia-example-website.neocities.com 中,如果你查看源代碼,你將看到它與 github 倉庫中的 HTML 相同。

          我認為這可能是將 HTML 頁面放在互聯網上的最簡單的方法(這是一次回歸 Geocities,它是我在 2003 年制作我的第一個網站的方式):)。我也喜歡 Neocities (像 glitch ,我也喜歡)它能實驗、學習,并有樂趣。

          其他選擇

          這絕不是唯一簡單的方式,在你推送 Git 倉庫時,Github pages 和 Gitlab pages 以及 Netlify 都將會自動發布站點,并且它們都非常易于使用(只需將它們連接到你的 GitHub 倉庫即可)。我個人使用 Git 倉庫的方式,因為 Git 不會讓我感到緊張,我想知道我實際推送的頁面發生了什么更改。但我想你如果第一次只想將 HTML/CSS 制作的站點放到互聯網上,那么 Neocities 就是一個非常好的方法。

          如果你不只是玩,而是要將網站用于真實用途,那么你或許會需要買一個域名,以便你將來可以更改托管服務提供商,但這有點不那么簡單。

          這是學習 HTML 的一個很好的起點

          如果你熟悉在 Git 中編輯文件,同時想練習 HTML/CSS 的話,我認為將它放在網站中是一個有趣的方式!我真的很喜歡它的簡單性 —— 實際上這只有一個文件,所以沒有其他花哨的東西需要去理解。

          還有很多方法可以復雜化/擴展它,比如這個博客實際上是用 Hugo 生成的,它生成了一堆 HTML 文件并放在網絡中,但從基礎開始總是不錯的。


          via: https://jvns.ca/blog/2019/09/06/how-to-put-an-html-page-on-the-internet/

          作者: Julia Evans 選題: lujun9972 譯者: geekpi 校對: wxy

          本文由 LCTT 原創編譯, Linux中國 榮譽推出

          點擊“了解更多”可訪問文內鏈接

          /on(eve, [sel], [data], fn) 1.7 + 在選擇元素上綁定一個或多個事件的事件處理函數。

          1可以多次添加相同的點擊事件

          $("p").on("click", function() { console.log(1); });

          $("p").on("click", function() { console.log(2); });

          2可以在某個對象上同時添加多個事件處理函數

          $("button").on({

          click: function() { $("p").slideToggle();},

          mouseover: function() {$("body").css("background-color", "red");},

          mouseout: function() {$("body").css("background-color", "#FFFFFF");}

          });

          3通過on事件可以通過冒泡原理實現事件委托。

          <script src="js/jquery.js"></script>

          <div id="box" style="width:200px,height:200px,background:red">

          <div id="littleBox" style="width:50px,height:50px,background:blue">內層div</div>

          <div id="otherBox" style="width:50px,height:50px,background:green"></div>

          </div>

          <div id="msg"></div>

          <script>

          $(function () {

          $("#box").on("click","#littleBox",function(){

          $("#littleBox").css("background","black")})})

          </script>

          4移除on中的事件處理函數

          $("p").off(); //移除所有的事件;$("p").off("mouseover mouseout");移除參數事件函數


          主站蜘蛛池模板: 99国产精品一区二区| 视频一区二区精品的福利| 国产拳头交一区二区| 午夜AV内射一区二区三区红桃视| 综合人妻久久一区二区精品| 亚洲一区二区三区AV无码| 无码人妻一区二区三区av| 国内国外日产一区二区| 精品国产一区二区三区无码| 亚洲欧美日韩中文字幕一区二区三区| 国产成人av一区二区三区不卡| 国产一区二区成人| 亚洲国产情侣一区二区三区| 伊人色综合一区二区三区| 亚洲福利精品一区二区三区| 精品人妻少妇一区二区三区不卡 | 国产在线一区二区综合免费视频| 91午夜精品亚洲一区二区三区| 日韩一区二区在线观看| 在线免费视频一区二区| 不卡无码人妻一区三区音频| 国产一区二区三区电影| 一区视频在线播放| 精品一区二区三区四区电影 | 国产成人一区二区在线不卡| 成人精品一区二区激情| 亚洲av永久无码一区二区三区 | 国产在线观看91精品一区| 日本精品啪啪一区二区三区| 国产91精品一区| AV天堂午夜精品一区| 久久综合精品不卡一区二区| 久久精品一区二区东京热| 2022年亚洲午夜一区二区福利| 欲色aV无码一区二区人妻| 日韩精品一区二区三区视频| 韩国精品一区视频在线播放| 午夜福利国产一区二区| 好湿好大硬得深一点动态图91精品福利一区二区 | 亚洲av午夜精品一区二区三区| 久久免费视频一区|