首頁 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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 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)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
建議:優秀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狀態碼是指當瀏覽器向伺服器發起請求時,服務

深入了解HTTP狀態碼100:它代表什麼意思? 深入了解HTTP狀態碼100:它代表什麼意思? Feb 20, 2024 pm 04:15 PM

深入了解HTTP狀態碼100:它代表什麼意思? HTTP協定是現代網路應用中最常用的協定之一,它定義了瀏覽器和網路伺服器之間進行通訊所需的標準規格。在HTTP請求和回應的過程中,伺服器會向瀏覽器傳回各種類型的狀態碼,以反映請求的處理情況。其中,HTTP狀態碼100是一種特殊的狀態碼,用來表示"繼續"。 HTTP狀態碼由三位數字組成,每個狀態碼都有特定的意義

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