Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
TML5 對(duì)于初學(xué)者甚至是非程序員來說都有著十足的吸引力。實(shí)際上,只要你訪問網(wǎng)站,就會(huì)和 HTML 打交道。如果能夠熟悉一些關(guān)鍵的編程技巧,當(dāng)你對(duì)網(wǎng)站做一些細(xì)節(jié)調(diào)整或優(yōu)化基本的 Web 元素時(shí)就能節(jié)省大量的時(shí)間(甚至是金錢)。因此,本文精選了 10 個(gè)對(duì)于 Web 開發(fā)者來說非常實(shí)用的 HTML 編程技巧,而且它們不需要花太多時(shí)間精力就可以輕松掌握。
1. 可與本地緩存媒體資源交互
HTML5 FileSystem API 一開始被認(rèn)為是 AppCache 的替代方案,用來實(shí)現(xiàn)資產(chǎn)的動(dòng)態(tài)緩存。但是你知道嗎,其實(shí)你還可以用它來實(shí)現(xiàn)與用戶本地設(shè)備上存儲(chǔ)文件的交互。
例如,你可以在應(yīng)用中添加以下功能:
注意:FileSystem API 僅被 Chrome 支持。
如果你想嘗試離線存儲(chǔ)功能,還可以參考以下資源和代碼教程:
2. 進(jìn)行自動(dòng)表單驗(yàn)證
對(duì)于網(wǎng)站安全性和流暢的用戶體驗(yàn)來說,表單驗(yàn)證非常重要。所以我們應(yīng)該讓用戶更輕松地在你的網(wǎng)站上輸入各種正確類型的值。
在 HTML5 中有幾種新的輸入類型可用,這些類型已經(jīng)打包進(jìn)了預(yù)定義的驗(yàn)證功能:
但當(dāng)你需要用戶提供某些標(biāo)準(zhǔn)輸入未指定的數(shù)據(jù)時(shí)(例如一個(gè)包含特殊字符的用戶名),往往就會(huì)出問題了。這就是“pattern”屬性派上用場(chǎng)的時(shí)候。
Pattern 可讓你定義自定義規(guī)則,然后使用正則表達(dá)式(RegEx)驗(yàn)證表單輸入。RegEx 指定了<input>元素值將要檢查的表達(dá)式。
下面是一個(gè)添加新規(guī)則的示例。例如,你要指定密碼不應(yīng)超過 15 個(gè)字符,并且只能包含小寫字母:
<form action="/action_page.php">
Password: <input?type="password"?name="pw"?pattern="[a-z].{1,15,}">
<input?type="submit">
</form>
為了更好地說明規(guī)則,你還可以添加一條自定義消息,告訴用戶為什么他們輸入的密碼不符合要求。只需再加上一行來自定義彈出消息即可:
<form action="/action_page.php">
Password: <input?type="password"?name="pw"?pattern="[a-z].{1,15,}"?title="One to fifteen characters, lowercase only".>>
<input?type="submit">
</form>
3. 為 HTML5 代碼元素創(chuàng)建縮寫
Emmet[4] 是一個(gè)很好用的文本編輯器插件,可以簡(jiǎn)化你的 HTML/CSS 編碼流程。這個(gè)工具使用的語法類似于 CSS 的選擇器,可讓你為標(biāo)準(zhǔn) HTML 代碼元素創(chuàng)建各種縮寫。
下面是一個(gè)例子。如果你輸入:
div#header>h1.logo>a{website}
則會(huì)收到:
<div?id="header">
<h1?class="logo"><a?href="">website</a></h1>
</div>
你可以使用 cheat sheet[5] 中的多種已有組合,也可以為任意 HTML 標(biāo)簽創(chuàng)建自定義組合,然后按 Tab 或 Ctrl + E 將其添加到文本編輯器中。我自己是一名從事了多年開發(fā)的web前端老程序員,目前辭職在做自己的web前端私人定制課程,去年我花了一個(gè)月整理了一份最適合2019年學(xué)習(xí)的web前端學(xué)習(xí)干貨,各種框架都有整理,送給每一位前端小伙伴,想要獲取的可以關(guān)注我的頭條號(hào)并在后臺(tái)私信我:前端,即可免費(fèi)獲取。
4. 實(shí)現(xiàn)更優(yōu)的視頻傳輸
使用 video 標(biāo)簽,可以將支持視頻播放的媒體播放器無縫嵌入到網(wǎng)頁中。
你可以選擇:
此外,你必須為視頻指定“控件”(例如播放、暫停和音量調(diào)節(jié)),否則用戶將沒有任何控件可用。這里的示例代碼如下:
<video width="768"?height="432"?autoplay>
<source?src="video.mp4"?type="video/mp4">
</video>
為了進(jìn)一步改善觀看體驗(yàn),你還可以嘗試使用以下屬性:
你可以在這個(gè) HTML 速查表 [7] 中找到更多使用方便的多媒體文件標(biāo)簽。
5. 改善圖像的顯示方式
<picture>標(biāo)簽有助于優(yōu)化圖像的顯示方式。
它通常用于:
示例:
<picture>
<source?media="(min-width: 846px)"?srcset="img_1.jpg">
<source?media="(min-width: 300 px)"?srcset="img_2.jpg">
<img?src="img_3.jpg"?alt="logo">
</picture>
<picture>標(biāo)簽包含兩個(gè)附加子元素:
要啟用其他樣式選項(xiàng),請(qǐng)將以下屬性添加到<source>元素:
<img>元素可用來確保在不支持<picture>元素的瀏覽器中正確顯示圖像。
6. 提升首屏頁面的加載速度
如果你希望你的網(wǎng)站在搜索結(jié)果中獲得靠前的排名,并提供出色的用戶體驗(yàn),那么就需要重點(diǎn)關(guān)注頁面的加載速度。
但是,要在 Google Page Insights 中拿到高分并不是那么容易。雖然這一工具的確會(huì)標(biāo)出你的網(wǎng)站上應(yīng)該修復(fù)的內(nèi)容,但是對(duì)于從頭開始對(duì)網(wǎng)站進(jìn)行編碼的人們并沒有提供明確的優(yōu)化指導(dǎo)。
谷歌對(duì)于首屏設(shè)計(jì)的官方建議 [8] 有些含糊不清:
所以我們來將其分解為更可操作的幾個(gè)步驟:
然后再次運(yùn)行檢查任務(wù),看看是否還有需要修復(fù)的內(nèi)容。
7. 網(wǎng)站加速
只要將 .zip 文件而不是 index.html 文件發(fā)送給瀏覽器,就可以節(jié)省大量帶寬和下載時(shí)間。
圖片來自 betterexplained[11]
要設(shè)置 .gzip 壓縮,你需要在 web 主機(jī) / 服務(wù)器上找到 htaccess 文件,并使用以下代碼對(duì)其進(jìn)行修改:
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include?file?.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
如果這樣做不起作用,請(qǐng)參考下面這些針對(duì)不同 web 服務(wù)器類型的教程:
8. 利用 Microdata 進(jìn)行 SEO
你可以使用 microdata 將額外的上下文編入網(wǎng)頁。然后,網(wǎng)絡(luò)爬蟲就可以從你的頁面中渲染微數(shù)據(jù),并為用戶提供更好的瀏覽體驗(yàn),以更高的精確性對(duì)你的網(wǎng)站建立索引并為其提供更準(zhǔn)確的搜索結(jié)果排名。
簡(jiǎn)而言之,Microdata 由名稱 / 值(name/value)對(duì)組成,每一個(gè)項(xiàng)目(item)定義一組命名的屬性(property)。
9. 使用 HTML5 本地存儲(chǔ)代替 Cookie
Local Storage(也稱為 DOM 存儲(chǔ))使你可以在本地存儲(chǔ)用戶數(shù)據(jù),這樣就無需通過 HTTP 網(wǎng)絡(luò)請(qǐng)求發(fā)送數(shù)據(jù)了。它可以節(jié)省帶寬并提升數(shù)據(jù)存儲(chǔ)能力。看起來不錯(cuò)吧?
但是有一個(gè)重要的警告:本地存儲(chǔ)僅能保存在客戶端,而 cookie 既可以保存在服務(wù)器端也可以在客戶端。因此,如果你的網(wǎng)站使用了服務(wù)器端的 Cookie 來基于已知的用戶首選項(xiàng)自定義內(nèi)容,則遷移到本地存儲(chǔ)可能就需要重大的架構(gòu)更改工作了。
但在比較簡(jiǎn)單的情況下(例如你使用 Cookie 來存儲(chǔ)一些基本設(shè)置),本地存儲(chǔ)可能是一個(gè)很好的替代品,尤其是在網(wǎng)絡(luò)連接質(zhì)量較差的區(qū)域。另外請(qǐng)記住,本地存儲(chǔ)對(duì)于高敏感數(shù)據(jù)(例如財(cái)務(wù)信息)可能不是理想的選擇,并且建議你對(duì)本地存儲(chǔ)的所有數(shù)據(jù)都進(jìn)行額外的加密。
Jenkov 詳細(xì)介紹了如何設(shè)置和配置 HTML5 本地存儲(chǔ) [13]。
10. 編寫有編號(hào)項(xiàng)目的降序列表
文章最后介紹一個(gè)非常簡(jiǎn)單的技巧:你可以使用<reversed>屬性添加降序列表替代升序列表。
下面是一個(gè)示例代碼片段:
<ol?reversed>
<li>Ready</li>
<li>Set</li>
<li>Go!</li>
</ol>
聽起來可能沒有多大意義,但是當(dāng)你想在頁面中添加一些時(shí)髦的樣式時(shí),它可能就會(huì)派上用場(chǎng)了。
小結(jié)
現(xiàn)在你應(yīng)該掌握了這 10 個(gè)新的 HTML5 技巧和竅門,它們應(yīng)該可以幫助你構(gòu)建更快、更人性化和更有吸引力的網(wǎng)站。不過千萬要記得,在開始實(shí)驗(yàn)之前先對(duì)你的網(wǎng)站進(jìn)行備份!
原文鏈接:https://mp.weixin.qq.com/s/qtQZUvsnIn0nsFbG51lQQw
作者:前端工匠
ia仔ke:quangneng.com/5081/
獲取資源:上方URL獲取資源
MQ隊(duì)列、Redis緩存
VUE、html5
視頻流技術(shù)、文件上傳下載
AES、MD5
您提到了幾個(gè)不同的技術(shù)領(lǐng)域,我們可以逐一探討如何在這些方面提升您的技能。
消息隊(duì)列 (Message Queue, MQ)
Redis 緩存
Vue.js
HTML5
視頻流技術(shù)
文件上傳下載
AES (Advanced Encryption Standard)
MD5 (Message-Digest Algorithm 5)
為了更深入地學(xué)習(xí)這些技術(shù),你可以嘗試完成一些實(shí)際的項(xiàng)目來應(yīng)用這些知識(shí)。例如,你可以構(gòu)建一個(gè)基于 Vue.js 的前端應(yīng)用程序,其中包含視頻流播放、文件上傳下載等功能,并利用 Redis 和消息隊(duì)列進(jìn)行數(shù)據(jù)緩存和異步處理。同時(shí),在項(xiàng)目中使用 AES 對(duì)敏感數(shù)據(jù)進(jìn)行加密,并使用 MD5 對(duì)文件進(jìn)行校驗(yàn)。這樣的實(shí)踐將幫助你更好地理解和掌握這些技術(shù)。
100 Continue 繼續(xù),?般在發(fā)送 post 請(qǐng)求時(shí),已發(fā)送了 http header 之后服務(wù)端 將返回此信息,表示確認(rèn),之后發(fā)送具體參數(shù)信息
200 OK 正常返回信息
201 Created 請(qǐng)求成功并且服務(wù)器創(chuàng)建了新的資源
202 Accepted 服務(wù)器已接受請(qǐng)求,但尚未處理
301 Moved Permanently 請(qǐng)求的??已永久移動(dòng)到新位置。
302 Found 臨時(shí)性重定向。
303 See Other 臨時(shí)性重定向,且總是使? GET 請(qǐng)求新的 URI 。
304 Not Modified ?從上次請(qǐng)求后,請(qǐng)求的??未修改過。
400 Bad Request 服務(wù)器?法理解請(qǐng)求的格式,客戶端不應(yīng)當(dāng)嘗試再次使?相同的內(nèi) 容發(fā)起請(qǐng)求。
401 Unauthorized 請(qǐng)求未授權(quán)。
403 Forbidden 禁?訪問。
404 Not Found 找不到如何與 URI 相匹配的資源。
500 Internal Server Error 最常?的服務(wù)器端錯(cuò)誤。
503 Service Unavailable 服務(wù)器端暫時(shí)?法處理請(qǐng)求(可能是過載或維護(hù))。
主要分成兩部分:渲染引擎( layout engineer 或 Rendering Engine )和 JS 引擎
(1) HTML5 現(xiàn)在已經(jīng)不是 SGML 的?集,主要是關(guān)于圖像,位置,存儲(chǔ),多任務(wù)等功能的增加
(2) 移除的元素:
(3) ?持 HTML5 新標(biāo)簽:
在?戶沒有與因特?連接時(shí),可以正常訪問站點(diǎn)或應(yīng)?,在?戶與因特?連接時(shí),更新?戶機(jī)器上的緩存?件。
原理:
HTML5 的離線存儲(chǔ)是基于?個(gè)新建的 .appcache ?件的緩存機(jī)制(不是存儲(chǔ)技 術(shù)),通過這個(gè)?件上的解析清單離線存儲(chǔ)資源,這些資源就會(huì)像 cookie ?樣被存儲(chǔ)了下 來。之后當(dāng)?絡(luò)在處于離線狀態(tài)下時(shí),瀏覽器會(huì)通過被離線存儲(chǔ)的數(shù)據(jù)進(jìn)???展示。
如何使?:
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。