如何寫乙個DOM載入完成的執行行數

2021-07-31 02:55:03 字數 1105 閱讀 6375

像在jquery中會有$(function(){})或者$.ready(function(){})來使**在dom載入完成後執行。那麼這裡面的原理是怎麼樣的。先看下面**:

ready: function(fn) 

// check if

document already is loaded

if (document.readystate === 'complete') else

},

這個是jqlite的ready方法,可以看出,主要是利用了document的readystate和window的load事件。

document.readystate主要有三個引數:loading,interactive,complete。

以下是相容性:

再說說domcontentloaded(不支援ie8)與load事件:

dom文件載入的步驟為

解析html結構。

載入外部指令碼和樣式表檔案。

解析並執行指令碼**。

dom樹構建完成。//domcontentloaded

載入等外部檔案。

頁面載入完畢。//load

用原生js可以這麼寫

// 不相容老的瀏覽器,相容寫法見[jquery中ready與load事件](或用jquery

document.addeventlistener("domcontentloaded", function() , false);

window.addeventlistener("load", function() , false);

用jquery這麼寫

// domcontentloaded

$(document).ready(function() );

//load

$(document).load(function() );

如何寫乙個shell指令碼並執行

linux下你可以有兩種方式執行shell指令碼 1 用shell程式執行指令碼 根據你的shell指令碼的型別,選擇shell程式,常用的有sh,bash,tcsh等 一般來說第一行 bin bash裡面指明了shell型別的,比如 bin bash指明是bash,bin sh則是sh 然後輸入命...

如何寫乙個Stack?

1.棧是陣列 2.先進後出 3.出棧 4.入棧 手寫乙個雙向鍊錶 棧 public class stackpopandpush public stackpopandpush int lens 返回元素個數 public intsize 返回陣列長度,容量,棧資料長 private intcapaci...

如何寫乙個鍊錶

有的時候,處於記憶體中的資料並不是連續的。那麼這時候,我們就需要在 資料結構中新增乙個屬性,這個屬性會記錄下面乙個資料的位址。有了這個位址之後,所有的資料就像一條鍊子一樣串起來了,那麼這個位址屬性就起到了穿線鏈結的作用。相比較普通的線性結構,鍊錶結構的優勢是什麼呢?我們可以總結一下 1 單個節點建立...