HTML5練習代碼集:學習與實踐核心特性

本文還有配套的精品資源,點擊獲取 menu-r.4af5f7ec.gif

簡介:HTML5作為新一代網頁標準,對Web開發提供了更豐富的功能和工具。本練習代碼集專門針對HTML5的核心特性,包括語義化標簽、離線存儲、多媒體支持、圖形繪制等,以及CSS3的3D效果和WebGL技術。通過這些練習,初學者可以掌握和實踐HTML5的多個關鍵特性,提高編程技能,并理解Web開發的最新趨勢。
html5 練習代碼

1. HTML5語義化標簽應用

理解HTML5語義化標簽

HTML5的語義化標簽是現代Web開發的基礎,它們不僅有助于提高頁面的可讀性和可維護性,還對搜索引擎優化(SEO)和屏幕閱讀器等輔助技術有著極大的益處。在HTML5中,新增了一系列富有語義的元素,如 <header> , <footer> , <article> , <section> , <aside> 等,它們替代了傳統的 <div> 容器,讓結構更加直觀。

通過使用這些語義化標簽,開發者可以明確地表達內容的結構和含義,例如:

  • <header> 用于頁面或頁面分區的頭部信息。
  • <footer> 用于頁面或頁面分區的尾部信息。
  • <article> 用于獨立的、自成一體的內容塊。
  • <section> 用于對頁面內容進行邏輯分組。
<header><h1>網站標題</h1>
</header>
<section><article><h2>文章標題</h2><p>這里是文章內容...</p></article>
</section>
<footer><p>版權信息</p>
</footer>

在上面的示例中,頁面被清晰地分割成頭部、內容區和尾部。這種清晰的結構不僅有助于搜索引擎更好地理解頁面內容,也有助于開發者在維護和更新頁面內容時快速定位所需信息。

2. HTML5離線存儲實現

2.1 理解離線存儲的概念

2.1.1 離線存儲的定義與重要性

離線存儲指的是在用戶的本地設備上存儲數據,以供在沒有網絡連接的情況下使用。在HTML5中,這種技術主要是通過Web Storage和離線應用緩存(Manifest Cache)來實現的。Web Storage包括了localStorage和sessionStorage,它們提供了對Web頁面數據存儲的能力,不限于僅存儲少量數據,而且Web Storage提供的存儲空間比傳統的Cookie要大得多。

Web Storage和Manifest Cache的出現,極大地擴展了Web應用的功能,使得開發者能夠構建更加豐富和更具互動性的離線應用。例如,離線存儲能夠使用戶在離線時依然能夠瀏覽網頁上的內容,或者在無法連接到服務器時繼續進行數據的輸入和操作。

2.1.2 離線存儲的兼容性和應用場合

離線存儲的兼容性取決于用戶的瀏覽器和設備。大多數現代瀏覽器都支持離線存儲,但某些較舊的瀏覽器可能不支持或部分支持。因此,在決定使用離線存儲之前,開發者需要評估目標用戶群體的瀏覽器兼容性情況。

此外,離線存儲適合于以下應用場合:

  • 移動應用 :由于移動設備可能會隨時失去網絡連接,因此需要離線存儲來保證應用的流暢體驗。
  • 富互聯網應用(RIA) :這類應用功能復雜,依賴于大量的客戶端資源,離線存儲可用來緩存資源,減少網絡請求,提升性能。
  • 內容管理系統(CMS) :允許用戶離線查看和編輯內容,并在重新連接時同步到服務器。

2.2 實踐離線存儲技術

2.2.1 使用Manifest進行離線緩存

HTML5的Manifest文件是一個文本文件,它列出了一個Web應用的所有必需資源,包括HTML、CSS、JavaScript、圖片等。當用戶第一次訪問這個應用時,瀏覽器會下載并緩存這些資源,使應用可以在沒有網絡連接的情況下也能運行。

創建和使用Manifest文件的基本步驟如下

  1. 創建一個Manifest文件,例如 app.appcache
  2. 在HTML文件中引入該Manifest文件。
<!DOCTYPE html>
<html manifest="app.appcache">
<head><!-- 頁面頭部信息 -->
</head>
<body><!-- 頁面內容 -->
</body>
</html>
  1. 在Manifest文件中列出所有要緩存的資源。
CACHE MANIFEST
# version 1.0# 需要緩存的資源
CACHE:
index.html
styles.css
scripts.js
images/logo.png# 網絡請求的資源
NETWORK:
https://api.example.com/data# FALLBACK: 在網絡不可用時使用的資源
FALLBACK:
/ /offline.html

2.2.2 離線資源清單的配置方法

在Manifest文件中,可以指定三種類型的內容:

  • CACHE: 包含需要被瀏覽器緩存的資源列表。
  • NETWORK: 包含必須從服務器獲取的資源列表。
  • FALLBACK: 用于指定離線時的備用頁面,當請求的資源無法訪問時,會加載列表中指定的備用資源。

配置Manifest文件需要注意以下事項:

  • 一定要在Manifest文件中包含 CACHE: 部分,即使是空的。
  • Manifest文件的版本號變化會導致瀏覽器重新下載和緩存資源列表,因此可以通過更改版本號來強制更新緩存。
  • 使用 NETWORK: FALLBACK: 可以增加應用的靈活性,確保在特定條件下資源能夠正確地從服務器加載。

2.2.3 離線存儲的動態更新機制

Manifest文件可以觸發瀏覽器更新緩存的資源。當Manifest文件被更改時,瀏覽器會自動更新被緩存的資源列表。開發者可以通過更改Manifest文件的版本號或者內容來控制更新。

動態更新通常涉及以下步驟:

  1. 更改Manifest文件中的資源列表或版本號。
  2. 用戶訪問或刷新應用頁面時,瀏覽器會檢測到Manifest文件的更改,并請求更新緩存。
  3. 瀏覽器會下載新的資源列表,替換舊的緩存,從而更新應用的離線版本。

這一機制讓開發者能夠在不必手動刪除舊緩存的情況下更新用戶端的資源,提升了用戶體驗并減少了維護成本。

通過本章節的介紹,我們已經了解了HTML5離線存儲技術的背景、重要性、兼容性以及如何使用Manifest文件來實現離線緩存。在下一節中,我們將深入了解如何配置Manifest文件,并探討動態更新離線存儲的高級技巧。

3. HTML5多媒體支持使用

3.1 音頻和視頻在HTML5中的應用

3.1.1 <audio> <video> 標簽的使用

HTML5 引入了 <audio> <video> 標簽,以提供原生的音頻和視頻支持,使得開發者無需依賴插件就可以在網頁上嵌入多媒體內容。這兩個標簽的引入,極大地方便了網頁的多媒體內容創建和分享。

<audio> 標簽的基本使用
<audio controls><source src="audio.mp3" type="audio/mpeg">您的瀏覽器不支持 audio 元素。
</audio>

在上述代碼中, <audio> 標簽用于在網頁中嵌入音頻內容。 controls 屬性添加了音頻播放控件,包括播放/暫停按鈕、音量控制、進度條等。 <source> 標簽的 src 屬性指向音頻文件的位置,而 type 屬性指明了文件格式。

<video> 標簽的基本使用
<video width="320" height="240" controls><source src="movie.mp4" type="video/mp4">您的瀏覽器不支持 video 元素。
</video>

<audio> 類似, <video> 標簽用于嵌入視頻內容。 width height 屬性設置了視頻播放器的尺寸。同樣, <source> 標簽用于指定視頻文件的路徑和格式。

3.1.2 媒體資源的格式兼容性及解決方案

盡管 HTML5 的 <audio> <video> 標簽簡化了多媒體內容的嵌入,但不同的瀏覽器對媒體格式的支持卻不盡相同。例如,某些瀏覽器可能不支持 MP3 格式的音頻或 MP4 格式的視頻,這要求開發者考慮到兼容性問題。

媒體格式兼容性表格
瀏覽器 MP3 MP4 WebM
Chrome 支持 支持 支持
Firefox 支持 支持 支持
Safari 支持 支持 不支持
Internet Explorer 不支持 支持 不支持
Edge 支持 支持 支持

為了解決兼容性問題,可以在 <source> 標簽中提供多種格式的媒體資源,瀏覽器會根據其支持情況自動選擇合適的格式:

<video controls><source src="movie.mp4" type="video/mp4"><source src="movie.webm" type="video/webm">您的瀏覽器不支持 video 元素。
</video>

在上述代碼中,瀏覽器會首先嘗試使用 MP4 格式的視頻,如果不行,會嘗試使用 WebM 格式。如果兩種格式都不支持,將顯示消息提示。

3.2 實現多媒體交互體驗

3.2.1 媒體控制API的使用

HTML5 不僅提供了嵌入媒體內容的標簽,還定義了一系列的媒體控制 API,允許開發者實現更高級的自定義播放器功能。

媒體 API 提供了對媒體元素的各種操作,如播放、暫停、調整音量、切換全屏模式等。開發者可以通過 JavaScript 訪問這些 API,并通過編程控制媒體播放的行為。

// 獲取視頻元素并播放
var video = document.querySelector('video');
video.play();// 監聽播放狀態變化
video.addEventListener('play', function() {console.log('視頻已播放');
}, false);// 監聽暫停事件
video.addEventListener('pause', function() {console.log('視頻已暫停');
}, false);

3.2.2 自定義媒體播放器界面

除了使用瀏覽器默認的播放控件外,開發者還可以通過 HTML 和 CSS 來構建自定義的媒體播放器界面,以實現更豐富的用戶交互體驗。

自定義播放按鈕
<video id="myVideo" width="320" height="240"><source src="movie.mp4" type="video/mp4">您的瀏覽器不支持 video 元素。
</video>
<button id="playPauseBtn">播放</button><script>
var video = document.getElementById('myVideo');
var playPauseBtn = document.getElementById('playPauseBtn');playPauseBtn.addEventListener('click', function() {if (video.paused) {video.play();playPauseBtn.textContent = '暫停';} else {video.pause();playPauseBtn.textContent = '播放';}
}, false);
</script>

在上述代碼中,創建了一個按鈕作為播放/暫停的控制。點擊按鈕時,JavaScript 會檢查視頻的當前播放狀態,并執行相應的播放或暫停操作。同時,按鈕的文本內容會根據操作被更新為反映當前狀態。

通過自定義播放器界面,開發者可以更好地融入網頁的整體設計風格,提供更加流暢和美觀的用戶體驗。

4. HTML5 Canvas圖形繪制

4.1 Canvas基礎知識

4.1.1 Canvas與SVG的對比

Canvas和SVG是現代網頁設計中常用的兩種圖形繪制技術。SVG代表Scalable Vector Graphics,是一種基于XML的圖像格式,用來描述二維矢量圖形。它允許用戶直接在HTML中嵌入矢量圖形,支持圖像的縮放而不會失去質量,并且由于是矢量圖形,可以輕易地改變顏色、樣式和尺寸。

相對地,Canvas則是一種通過JavaScript來繪制圖形的HTML5元素。它提供了一塊畫布(一個 <canvas> 元素),你可以通過腳本在上面繪圖,所繪制的圖形通常是像素化的位圖。Canvas非常適合于繪制大量圖形和實現復雜動畫效果,但它不支持縮放,因為放大Canvas會使畫布上的像素變得模糊。

兩者的選擇依賴于具體的應用場景。對于需要在客戶端進行復雜圖形操作,尤其是動畫的應用,Canvas可能是更好的選擇。而SVG適合用于需要高保真度的靜態圖形,或者需要良好的放大不失真的圖形。

4.1.2 Canvas的渲染上下文

Canvas元素的核心是其渲染上下文,它是一個接口,通過該接口提供了繪圖的各種操作。對于2D圖形,我們使用的是Canvas 2D渲染上下文,通過調用 getContext('2d') 方法獲取:

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');

一旦獲取了2D渲染上下文,我們就可以使用它來繪制形狀、文本、圖像和像素數據。對于WebGL,提供的是3D渲染上下文,通過 getContext('webgl') getContext('experimental-webgl') 獲取,它允許在網頁中直接使用OpenGL ES繪圖API。

4.2 Canvas圖形繪制技巧

4.2.1 2D圖形繪制基礎

Canvas的2D繪圖功能非常強大,基本的圖形繪制包括矩形、圓形、線條等。通過設置填充樣式( ctx.fillStyle )、線型( ctx.lineWidth )、線型顏色( ctx.strokeStyle )等屬性,可以繪制出各種圖形。

繪制矩形是最簡單的示例:

ctx.fillStyle = '#ff0000';
ctx.fillRect(10, 10, 100, 50); // 繪制填充矩形
ctx.strokeRect(30, 30, 100, 50); // 繪制矩形邊框

繪制圓形則需要使用 arc() 方法:

ctx.beginPath(); // 開始一個新的路徑
ctx.arc(150, 75, 50, 0, Math.PI * 2, true); // 繪制圓形路徑
ctx.closePath(); // 結束路徑
ctx.stroke(); // 描邊路徑

Canvas還提供了豐富的路徑操作API,包括 moveTo() lineTo() bezierCurveTo() 等,用這些方法可以繪制出非常復雜的圖形。

4.2.2 高級圖形操作:圖像合成與動畫

Canvas不僅僅能繪制靜態圖形,還能實現高級的圖像合成以及動畫效果。圖像合成依賴于 globalCompositeOperation 屬性,它允許我們定義新圖形如何與舊圖形進行交互。

例如,可以創建一個透明的圓形覆蓋在已有的圖形上,通過設置不同的合成模式可以創建出各種視覺效果。

ctx.globalCompositeOperation = 'destination-out';
ctx.beginPath();
ctx.arc(150, 75, 50, 0, Math.PI * 2, true);
ctx.fill();

對于動畫,Canvas提供了 requestAnimationFrame() 方法,該方法提供了一種平滑的方式來進行動畫循環。你可以結合Canvas的繪圖API不斷地更新畫布狀態,從而實現動畫效果。

var animationLoop = function() {update(); // 更新畫布狀態draw(); // 重新繪制畫布requestAnimationFrame(animationLoop); // 循環調用
};function update() {// 更新邏輯
}function draw() {// 繪制邏輯
}requestAnimationFrame(animationLoop); // 開始循環

通過上述例子,我們簡單介紹了Canvas的基礎知識和一些基本的繪圖技巧。在實際應用中,通過組合使用Canvas的API可以創造出豐富多樣的視覺效果,包括游戲、數據可視化和各種動態效果等。隨著對Canvas的深入了解和應用,它將變成一個強大且靈活的圖形處理工具。

5. SVG圖形繪制技術

SVG(Scalable Vector Graphics)是一種基于XML格式的圖像格式,用于描述二維矢量圖形。SVG圖像和向量圖形可被無限放大而不失真,與之相對的是位圖圖像,放大后會失真。

5.1 SVG入門與應用

5.1.1 SVG格式與應用場景

SVG格式的文件是一種文本文件,可以直接在文本編輯器中編寫,也可以使用圖形編輯軟件生成。由于其是基于XML的,它擁有XML的所有特點,比如易于編輯、可讀性強和較好的可壓縮性。

SVG廣泛應用于網頁設計中,特別是在需要放縮而不失真的場合。比如,圖標、徽標、簡單的圖形設計等。它也為設計師提供了一個更加靈活的方式來設計交互式的圖形和動畫。

5.1.2 SVG基礎標簽和屬性

SVG基本的圖形元素包括矩形(rect)、圓形(circle)、橢圓形(ellipse)、線條(line)、折線(polygon)、多邊形(polyline)等。每個元素都有其特定的屬性,如顏色、尺寸、位置等。

以下是一個簡單的SVG圖像示例:

<svg width="100" height="100"><rect width="100" height="100" style="fill:blue;" />
</svg>

在此示例中,我們創建了一個100x100像素的SVG圖像,其中包含一個藍色的矩形。在實際應用中,SVG可以包含更多復雜的元素和屬性,支持嵌套、樣式(CSS和內聯樣式)以及腳本。

5.2 SVG交互與動畫實現

5.2.1 在HTML5中集成SVG

SVG可以直接嵌入到HTML頁面中,使用 <img> 標簽引用外部SVG文件,也可以直接在HTML文檔內使用 <svg> 標簽。為了提高性能和可維護性,推薦使用 <object> <iframe> 標簽引用較大的SVG文件。

<!-- 直接在HTML中嵌入SVG -->
<svg width="300" height="200"><circle cx="150" cy="100" r="90" stroke="black" stroke-width="2" fill="red" />
</svg>

5.2.2 使用SVG進行復雜的圖形設計

SVG通過組合基本圖形和使用樣式屬性可以構建出復雜的圖形。這可以通過內聯SVG代碼來完成,或者通過編輯器設計好圖形后導出為SVG文件。

對于更復雜的圖形設計,可以利用SVG的 <g> 標簽組合多個圖形元素。然后通過CSS或JavaScript來控制 <g> 標簽的屬性,實現更豐富的交互效果。

<svg width="300" height="200"><g id="myGroup" transform="translate(50, 50)"><rect width="100" height="100" style="fill:blue;" /><circle cx="50" cy="50" r="40" style="fill:red;stroke:black;stroke-width:2;" /></g>
</svg>

5.2.3 SVG動畫效果的實現

SVG的動畫可以通過定義關鍵幀( <animate> 標簽)或使用JavaScript來實現。SVG動畫非常適合于創建平滑、響應式的圖形動畫。

<svg width="300" height="100"><circle cx="150" cy="50" r="40" fill="red"><animateTransform attributeType="XML" attributeName="transform" type="rotate" from="0 150 50" to="360 150 50"dur="5s" repeatCount="indefinite"/></circle>
</svg>

在這個例子中,我們創建了一個紅色的圓形,并使用 <animateTransform> 標簽為圓形添加了連續的旋轉動畫。動畫可以被設置為無限重復,為頁面增添動態效果。

SVG在現代Web設計中扮演著重要角色,它提供了強大的圖形設計和動畫能力。隨著Web技術的發展,SVG的潛力正在被進一步挖掘和應用。

6. CSS3 3D轉換效果

6.1 CSS3 3D變換技術基礎

6.1.1 3D變換的理論基礎

在理解3D變換之前,我們首先需要熟悉CSS3中3D變換的理論基礎。3D變換是通過模擬空間中的點進行移動、旋轉和縮放,從而在用戶瀏覽器中創建出立體效果。其核心在于創建一個仿真的三維空間,以及在這個空間內對元素進行操作。

3D變換包括了如下幾種基本的變換方式:

  • 位移(Translate):在三維空間內移動元素。
  • 旋轉(Rotate):圍繞x軸、y軸或z軸旋轉元素。
  • 縮放(Scale):在三維空間內對元素的大小進行拉伸或壓縮。

在CSS中,3D變換由特定的屬性和函數實現,主要包括 transform 屬性。通過這個屬性,可以組合使用上述的變換方式,形成復雜的變換效果。

6.1.2 實現3D變換的CSS屬性

CSS3引入的 transform 屬性支持3D變換,該屬性允許開發者定義元素的變換矩陣。為了實現3D效果,我們需要使用 transform 屬性配合3D變換函數,如 rotateX() , rotateY() , rotateZ() , translateZ() , 等。

為了使3D效果在瀏覽器中能夠被正確渲染,還需要設置元素的透視(perspective),這相當于定義了一個虛擬的觀察點。透視可以使得遠離觀察點的元素顯得更小,這樣3D效果才更真實。

一個簡單的3D變換的例子代碼如下:

.box {transform: perspective(800px) rotateY(45deg) translateZ(50px);
}

這段代碼會使元素繞y軸旋轉45度,沿z軸移動50像素,同時應用了一個800像素的透視效果。

6.2 實踐3D轉換效果

6.2.1 創建3D場景和視角

創建3D場景需要設定元素的透視,這相當于定義了觀察者的視點。我們通常會在父元素上設置 perspective 屬性,并在子元素上應用 transform 屬性來定義具體的變換效果。

例如,下面的HTML和CSS代碼創建了一個簡單的3D場景:

<div class="scene"><div class="box">3D Box</div>
</div>
.scene {perspective: 1200px;
}.box {width: 200px;height: 200px;background: red;transform: rotateY(45deg) translateZ(300px);
}

這里, .scene 作為父元素,定義了視點的透視效果,而 .box 作為子元素,應用了3D變換。

6.2.2 3D動畫與交互效果的實現

為了增強用戶的交互體驗,我們常常需要在3D場景中添加動畫效果。CSS3提供了 @keyframes 規則和 animation 屬性來定義和控制動畫。

一個簡單的3D旋轉動畫示例:

.box {transform-style: preserve-3d;animation: rotate3d 5s infinite linear;
}@keyframes rotate3d {from {transform: rotateY(0deg);}to {transform: rotateY(360deg);}
}

在這個例子中, .box transform-style 屬性設置了變換應該如何在空間中應用, rotate3d 關鍵幀定義了從0度到360度的旋轉動畫, animation 屬性定義了動畫的名稱、時長、循環次數和速度曲線。

總結

通過本章節的介紹,我們可以看到CSS3為Web設計帶來了強大的3D變換效果。通過學習3D變換的理論基礎,掌握相關CSS屬性的使用,以及通過實際代碼示例進行實踐,我們可以在網頁中創建出更加生動和互動的用戶體驗。無論是簡單的3D位移、旋轉,還是復雜的3D動畫效果,CSS3都提供了豐富的工具和方法來實現。隨著Web技術的不斷進步,3D效果的應用將會變得越來越廣泛和深入。

7. WebGL基礎應用

7.1 WebGL簡介與環境搭建

7.1.1 WebGL的定義和功能

WebGL(Web Graphics Library)是一個JavaScript API,用于在不依賴插件的情況下在網頁瀏覽器中渲染二維和三維圖形。它基于OpenGL ES 2.0 API,允許開發者在HTML的 <canvas> 元素中繪制復雜的交互式3D圖形和2D圖形。

WebGL的推出,使得在網頁上實現類似游戲的高復雜度圖形成為可能,它為開發者提供了底層的圖形渲染能力,可以訪問GPU加速渲染,但同時也帶來了較高的學習成本,因為需要對圖形編程有較深的理解。

7.1.2 WebGL開發環境的設置

要開始使用WebGL進行開發,首先需要準備一個支持WebGL的瀏覽器,例如Chrome或Firefox的最新版。接著,可以通過安裝一些輔助工具來提高開發效率,例如Chrome的WebGL Inspector插件用于調試。

接著,你需要一個文本編輯器來編寫你的WebGL代碼,推薦使用支持語法高亮和代碼提示的編輯器,如Visual Studio Code。對于WebGL的具體編碼,你可以使用原生JavaScript或者利用一些流行的庫,比如Three.js,來簡化3D圖形的處理和渲染。

以下是一個簡單的環境搭建過程,用于創建一個基本的WebGL項目:

  1. 創建項目文件夾,并在其中創建HTML文件(例如 index.html )。
  2. 在HTML文件中引入WebGL代碼,或者是使用外部JavaScript文件引入。
  3. 創建 canvas 元素以提供繪圖區域。
  4. 在JavaScript中設置WebGL上下文并加載著色器。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>WebGL Example</title>
</head>
<body><canvas id="glcanvas"></canvas><script>// 獲取canvas元素和WebGL上下文var canvas = document.getElementById("glcanvas");var gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");// 設置canvas尺寸gl.canvas.width = window.innerWidth;gl.canvas.height = window.innerHeight;// 接下來的WebGL代碼...</script>
</body>
</html>

在進行WebGL開發時,還需要注意瀏覽器的安全限制,尤其是本地測試時的CORS問題。為了能夠在本地加載外部資源(如紋理圖片),可能需要設置本地服務器。

通過以上步驟,你已經搭建好了WebGL的基礎開發環境,接下來就可以深入學習WebGL的圖形渲染流程了。

本文還有配套的精品資源,點擊獲取 menu-r.4af5f7ec.gif

簡介:HTML5作為新一代網頁標準,對Web開發提供了更豐富的功能和工具。本練習代碼集專門針對HTML5的核心特性,包括語義化標簽、離線存儲、多媒體支持、圖形繪制等,以及CSS3的3D效果和WebGL技術。通過這些練習,初學者可以掌握和實踐HTML5的多個關鍵特性,提高編程技能,并理解Web開發的最新趨勢。


本文還有配套的精品資源,點擊獲取
menu-r.4af5f7ec.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93240.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93240.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93240.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【RH134知識點問答題】第 10 章:控制啟動過程

目錄 1. 請簡要說明 RHEL9 的啟動過程。 2. 系統重啟和關機的命令分別是什么? 3. Systemd target 是什么&#xff1f; 4. 重置丟失的 root 密碼需要哪些步驟&#xff1f; 5. 如何讓系統日志在重啟后持久保留 1. 請簡要說明 RHEL9 的啟動過程。 答&#xff1a;①開機自檢…

Apollo10.0學習之固態雷達與IMU的外參標定

固態雷達&#xff08;如Livox、禾賽等非旋轉式激光雷達&#xff09;與IMU&#xff08;慣性測量單元&#xff09;的外參標定&#xff08;Extrinsic Calibration&#xff09;是自動駕駛、機器人定位&#xff08;如LIO-SAM、FAST-LIO&#xff09;的關鍵步驟。1. 標定原理 外參標定…

HTML5實現古典音樂網站源碼模板1

文章目錄 1.設計來源1.1 網站首頁1.2 古典音樂界面1.3 著名人物界面1.4 古典樂器界面1.5 歷史起源界面 2.效果和源碼2.1 動態效果2.2 源代碼 源碼下載萬套模板&#xff0c;程序開發&#xff0c;在線開發&#xff0c;在線溝通 作者&#xff1a;xcLeigh 文章地址&#xff1a;http…

40 C++ STL模板庫9-容器2-vector

C STL模板庫9-容器2-vector 文章目錄C STL模板庫9-容器2-vector一、基礎概念1. 類型成員&#xff08;Type Members&#xff09;2. 模板參數二、構造函數1. 語法2. 示例三、元素訪問1. 函數說明2. 示例代碼四、容量操作1. 函數說明2. 關鍵點說明3. 關鍵操作解析4. 操作示例五、修…

GPT-5系列文章2——新功能、測試與性能基準全解析

引言 2025年8月&#xff0c;OpenAI正式發布了其新一代旗艦模型GPT-5。與業界此前期待的AGI(人工通用智能)突破不同&#xff0c;GPT-5更像是OpenAI對現有技術的一次深度整合與用戶體驗優化。本文將全面解析GPT-5的新特性、實際測試表現以及官方發布的基準數據&#xff0c;幫助開…

利用cursor+MCP實現瀏覽器自動化釋放雙手

小伙伴們&#xff0c;我們今天利用cursorMCP實現瀏覽器自動化&#xff0c;釋放雙手&#xff0c;工作效率嘎嘎提升&#xff01;前期準備&#xff1a;安裝node.js網址&#xff1a;https://nodejs.org/zh-cn下載下來安裝即可。 下載browser-tools-mcp擴展程序&#xff1a;下載擴展…

指針/邊界索引混淆梳理

在處理數組/鏈表等數據結構時&#xff0c;時常混淆長度和指針序號。處理技巧&#xff1a;使用0-base索引。則區間長度 rightIndex - LeftIndex 1總長度 lastIndex - firstIndex 1鏈表創建一個dummy節點&#xff0c;添加到head前&#xff0c;則可認為從索引0開始。末尾指針判…

LeetCode 刷題【43. 字符串相乘】

43. 字符串相乘 自己做 解1&#xff1a;矩陣計數 class Solution { public:string multiply(string num1, string num2) {int len1 num1.size();int len2 num2.size();if (num1[0] 0 || num2[0] 0) //結果為0的情況return "0";//存儲計算過程的矩陣vector…

NLP數據增強方法及實現-A

目錄 詞替換 主要參考&#xff1a;paddlenlp/data_aug模塊 詞替換數據增強策略也即將句子中的詞隨機替換為其他單詞進行數據增強&#xff0c;這里我們將介紹如何使用paddlenlp.dataaug.WordSubstitute進行詞級別替換的數據增強。 WordSubstitute 參數介紹&#xff1a;aug_ty…

EhViewer安卓ios全版本類下載安裝工具的完整路徑解析

開發一款類似EhViewer的下載安裝工具&#xff08;集下載管理、應用部署等功能于一體&#xff09;&#xff0c;需要經歷從需求錨定到落地發布的系統性流程。以下從需求拆解到技術落地的全維度指南&#xff0c;將幫你理清開發脈絡&#xff0c;避開常見陷阱。安裝 GitHub - huangy…

MySQL 主鍵詳解:作用與使用方法

在 MySQL 數據庫中&#xff0c;主鍵&#xff08;Primary Key&#xff09; 是表結構設計中最重要的約束之一。它不僅是數據唯一性的保障&#xff0c;也是多表關聯、查詢優化的核心工具。本文將從 主鍵的作用 和 主鍵的用法 兩個方面進行講解&#xff0c;并配合代碼示例幫助理解一…

lib.dom.d.ts

lib.dom.d.ts 是一個 TypeScript 類型聲明文件&#xff0c;它是 TypeScript 標準庫的一部分&#xff0c;用于定義瀏覽器 DOM&#xff08;文檔對象模型&#xff09;相關的類型和接口。這個文件為開發者提供了瀏覽器中所有內置的 DOM 類型的定義&#xff0c;包括 localStorage、d…

Spring 工具類:StopWatch

StopWatch 是 Spring 框架提供的一個簡單而強大的計時工具類&#xff0c;用于測量代碼塊的執行時間。它特別適合在開發階段進行性能分析、調試和優化。 基本使用方法 // 創建 StopWatch 實例&#xff08;可指定 ID&#xff09; StopWatch stopWatch new StopWatch("性能分…

解決 VSCode 運行 Python 時 ModuleNotFoundError: No module named ‘open_webui‘ 問題

目錄 1. 問題原因分析 2. 解決思路 3. 解決步驟 3.1 打開或創建 .vscode/launch.json 3.2 添加調試配置 3.3 配置說明 3.4 運行測試 4. 總結 在使用 VSCode 調試 Python 項目時&#xff0c;我們經常會遇到類似下面的錯誤&#xff1a; Exception has occurred: ModuleN…

Python基礎-數據結構

數據結構 Python提供了四種主要的內置數據結構&#xff1a;列表&#xff08;List&#xff09;、元組&#xff08;Tuple&#xff09;、字典&#xff08;Dictionary&#xff09;和集合&#xff08;Set&#xff09;。每種數據結構都有其特定的用途和特性。 Python數據結構概覽&…

NLP學習之Transformer(1)

初識 Transformer &#xff08;1&#xff09; 1.簡介 1.1主要特點&#xff1a; self-attention&#xff1a; 自注意力機制&#xff0c;Transformer的核心是自注意力機制&#xff0c;它允許模型在處理某個位置的輸入時&#xff0c;能夠直接與其他位置的輸入交互&#xff0c;而不…

C語言筆記6:C高級 part1

1.gcc 編譯器 編譯流程 預處理-》編譯》匯編》鏈接》 E 預處理的命令 S 編譯匯編代碼 -c匯編階段命令 -o 輸出對應的文件GDB調試工具2.作用域存儲分類// C高級部分知識多&#xff0c; 加上這周 我學的知識量有點爆炸。家里又有事情&#xff0c;這周末要回老家 爭取下周補齊吧。…

A12預裝app

在A12上預裝應用&#xff0c;出現了一個異常。在此記錄問題描述&#xff1a;在A12上預裝應用按照A13的預裝方案報錯&#xff0c;mk文件如下&#xff1a;LOCAL_PATH : $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS : optional LOCAL_MODULE : Tideen_PTT LOCAL_MODU…

termios 線程 poll epoll進化 二叉AVL紅黑樹

struct termios tio 是什么 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <termios.h>#define SERIAL_PORT "/dev/ttyS0" #define BUF_SIZE 256int main(v…

C++設計模式:類間關系

類封裝了數據和行為&#xff0c;是面向對象的重要組成部分&#xff0c;它是具有相同屬性、操作、關系的對象集合的總稱。在系統中&#xff0c;每個類都具有一定的職責&#xff0c;職責指的是類要完成什么樣子的功能&#xff0c;要承擔什么樣子的義務。一個類可以有多種職責&…