淺談網頁運行原理

來源:互聯網
上載者:User

標籤:java   檔案   代碼   sp   on   javascript   ad   c   window   

  我們知道開啟一個網頁的時候,瀏覽器會首先建立一個視窗,這個視窗就是一個window對象,也是javascript運行所依附的全域環境對象和全域範圍對象。

  為了載入網頁文檔,當期的視窗將為要開啟的網頁建立一個document對象,然後將頁面載入到這個document中,網頁的內容就是在這這個過程中一邊載入一邊顯示出來,javascript也是伴隨著這個過程,一邊載入一邊執行的。

  進行載入和執行的目的,就是建立文件物件模型(DOM)主架構,這個文檔架構是由當前文件視窗的主線程來執行,並依照嚴格的順序執行。

      瀏覽器中會有多少線程可以同時載入網頁內容呢。Web標準有一個限制就是對同一個網域名稱最多隻允許兩個串連來讀取內容,大多瀏覽器都遵循這一標準。

       對於外部js檔案的載入,有一種所謂的非同步載入js檔案技術。其基本原理就是在當前   被載入執行的js代碼中,想document對象動態一次添加對個<script>標籤來引入要載入的多個js檔案。這時瀏覽器在解析和處理動態添加的標籤時,將開啟相應的線程和串連去載入這些外部的js檔案,這隻是實現了非同步載入,而非js代碼實現非同步執行,(不同瀏覽器對這種動態引入的技術執行順序是不同的)。

       當頁面的主架構載入和執行完畢,瀏覽器才開始執行和=觸發window對象或body對象的onload事件,在極少數的情況下網頁如果麼有body對象,瀏覽器在網頁記載完畢之後自動建立一個body對象,並將設定成document的body屬性。

       由於一個瀏覽器在開啟多個網頁的時候,所有的javascript佔用都是同一個線程,我們在給網頁編寫指令碼時,就不能太自私的編寫大量耗時的代碼。你得考慮使用者在開啟頁面的同時也有可能瀏覽其他頁面。

淺談網頁運行原理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.