首頁 web前端 js教程 JavaScript的理解與用法

JavaScript的理解與用法

Jun 26, 2017 am 11:25 AM
javascript js 深入 理解

(1)什麼是JavaScript?

JavaScript是一種專為與網頁互動而設計的腳本語言,由三個部分組成:( 1).ECMAScript :提供核心語言功能。 (2).文件物件模型(DOM):提供存取與操作網頁內容的方法與介面(3).瀏覽器物件模型(BOM):提供與瀏覽器的互動的方法與介面

(2)HTML 程式碼執行情況

##(

現代瀏覽器原理)

  
作者:錢多多
連結:
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者授權,非商業轉載請註明出處。


1. html下載與執行是同步的嗎?

結論:分情況。

html執行這個描述不準確,所謂的執行包括parseHTML、layout、paint幾個階段。 download、parseHTML/parseCSS/executeJS、layout、paint都在不同流程。

parseHTML/parseCSS並行,共同完成後layout產生渲染樹,進而paint渲染。執行JS會重新回到layout階段。


A.如果網速夠快,內容很快傳送完畢,那parse+layout+paint會靠後執行。

B.如果弱網環境下,針對網速很慢的情況現代瀏覽器是有優化的,會嘗試提前渲染已收到的內容,也就造成了pc上會看到頁面一塊一塊展現的狀況。

C.chunk原理類似,每個chunk斷點都有可能觸發解析渲染。

D.有些瀏覽器也會做首屏優化,下載過程中不斷嘗試parse+layout,如果layout計算出內容超過首屏就paint這些內容,讓用戶優先看到首屏內容。

大部分過程因為是並行的,會相對複雜,分情況討論意義不大,不如從原理上理解。


2. css檔的下載和渲染是同步的嗎? 還是先下載完, 再渲染?

不確定下載過程中是否同步做詞法分析parseCss,但是可能性很大,畢竟是種無損失的優化方案,

但是最終肯定需要下載完再layout生成渲染樹,進而渲染。


3. css檔的下載&執行 和 html檔的下載&執行同步嗎?

並行的。但是要注意一些限制,例如一個網域下最大並發6個請求,再多就得串行。


4. 圖形的載入 和 html檔的下載/執行同步嗎, 音視頻呢, 別的資源呢?

同上。


5. js檔案的下載&執行與html檔案的下載&執行同步還是非同步?如果帶有async和defer呢?

下載,但不executeJS


6. 有沒有可能出現html檔/圖片/css檔/js檔同時下載的情況?

常態。


7.有沒有可能出現html/css檔案/js檔案同時執行的情況?

你讀了上面文章就能理解了:html parse和css parse是並行的,兩者完成後才會layout、paint,新的css掛載會延遲layout、paint。 js parse會阻塞html parse ,所以後面的layout、paint一定不會同時執行。

(3).在html 中使用JavaScript

3.1<script>元素<strong></strong></p><script>元素的六個屬性:<p></p>  1. async:非同步載入屬性,可選。只對外部腳本有效,表示立即下載腳本,但不妨礙頁面<p></p>           的其他操作。 <p></p>  2. charset:字元編碼屬性,可選。預設是utf-8編碼,主要表示透過src屬性指定的<p></p>            代碼的字元集,而大多數瀏覽器會忽略它的值,所以不必使用。 <p></p>  3.defer:腳本延遲屬性,可選。用來延遲腳本的執行時間,直到HTML文件已經全<p></p>         部在解析及顯示後執行,且只對外部腳本文件有效。 <p></p>  4.language:腳本類型屬性,不是標準組成的一部分,<p>已廢棄<span style="background-color: #ff0000;">。大多數瀏覽器</span></p>              則會忽略此屬性,且已沒必要使用。 <p></p>  5.src:連結外部檔案屬性,可選。表示包含要執行程式碼的外部檔案。請注意,<p></p>        一旦設定src屬性,script元素中所寫的JavaScript程式碼就可能無效。 <p></p>  6. type:腳本類型屬性,必須。預設值為text/javascript可以看成language<p></p>          的替代屬性,以表示編寫程式碼所使用的內容類型(也稱為mime類型)。 <p></p> <p>注意事項:程式碼中的任何地方都不要出現</script>

#3.2 標籤位置

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

建議:優秀JS開源人臉偵測辨識項目 建議:優秀JS開源人臉偵測辨識項目 Apr 03, 2024 am 11:55 AM

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

PHP與JS開發技巧:掌握繪製股票蠟燭圖的方法 PHP與JS開發技巧:掌握繪製股票蠟燭圖的方法 Dec 18, 2023 pm 03:39 PM

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

js和vue的關係 js和vue的關係 Mar 11, 2024 pm 05:21 PM

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。

如何在JavaScript中取得HTTP狀態碼的簡單方法 如何在JavaScript中取得HTTP狀態碼的簡單方法 Jan 05, 2024 pm 01:37 PM

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務

JS 的 AI 時代來了! JS 的 AI 時代來了! Apr 08, 2024 am 09:10 AM

JS-Torch簡介JS-Torch是一種深度學習JavaScript函式庫,其語法與PyTorch非常相似。它包含一個功能齊全的張量物件(可與追蹤梯度),深度學習層和函數,以及一個自動微分引擎。 JS-Torch適用於在JavaScript中進行深度學習研究,並提供了許多方便的工具和函數來加速深度學習開發。圖片PyTorch是一個開源的深度學習框架,由Meta的研究團隊開發和維護。它提供了豐富的工具和函式庫,用於建立和訓練神經網路模型。 PyTorch的設計理念是簡單和靈活,易於使用,它的動態計算圖特性使

js刷新當前頁面的方法 js刷新當前頁面的方法 Jan 24, 2024 pm 03:58 PM

js刷新目前頁面的方法:1、location.reload();2、location.href;3、location.assign();4、window.location。詳細介紹:1、location.reload(),使用location.reload()方法可以重新載入目前頁面;2、location.href,可以透過設定location.href屬性來刷新目前頁面等等。

JS中__proto__與prototype的差別 JS中__proto__與prototype的差別 Feb 19, 2024 pm 01:38 PM

JS中__proto__和prototype是兩個與原型相關的屬性,它們在功能上稍有不同。本文將具體介紹並比較這兩者的區別,並提供相應的程式碼範例。首先,我們先來了解它們的意義和用途。 proto__proto__是物件的內建屬性,它用來指向該物件的原型。每個物件都有一個__proto__屬性,包括自訂物件、內建物件和函數物件。透過__proto__屬

See all articles