哪吒人生信條:若是你所學的東西 處於喜歡 纔會有強大的動力支撐。javascript
把你的前端拿捏得死死的,天天學習得爽爽的,若是你所學的東西 處於喜歡 纔會有強大的動力支撐。感謝不負每一份熱愛前端的程序員,不論前端技能有多奇葩,歡迎關注加我入羣vx:xiaoda0423php
但願能夠經過這篇文章,可以給你獲得幫助。(感謝一鍵三連)html
HTML5
表單增長的輸入類型url
類型:專門爲輸入url
地址定義的文本庫,在驗證輸入文本的格式時,若是文本框中的的內容不符合url
地址的格式,會提示驗證錯誤。email
類型:專門是爲輸入email
地址定義的文本框,在驗證輸入的文本的格式時,若是文本框中的內容不符合email
地址的格式,會提示驗證錯誤。在email
類型的input
元素還有一個multiple
屬性,表示在該文本框中可輸入用逗號隔開的多個郵件地址。range
類型:用於把輸入框顯示爲滑動條,能夠做爲某一特定範圍內的數值選擇器。min
和max
特性,分別表示範圍的最小值,默認爲0,範圍的最大值,默認爲100.range
類型有一個step
特性,表示拖動的步長,默認爲1。number
類型:專門爲輸入特定的數字而定義的文本框,具備min,max,step
特性。tel
類型:專門爲輸入電話號碼而定義的文本框,沒有特殊的驗證規則。search
類型:專門爲輸入搜索引擎關鍵詞定義的文本框,沒有特殊的驗證規則。color
類型:color
類型的input
元素默認會提供一個顏色選擇器。date
類型:專門用於輸入日期的文本框,默認帶日期選擇器的輸入框。month,week,time,datetime,datetime-local
類型的input
元素與date
類型的input
元素相似,提供一個相應的選擇器。
HTML5
增長表單的特性以及元素form
特性在HTML5
中,能夠把從屬於表單的元素放在任何地方,而後指定該元素的form
特性值爲表單的id
,該元素就從屬於表單。前端
<input name="da" type="text" form="form1" required/> <form id="form1"> <input type="submit" value="提交"/> </form>
formaction
特性:每一個表單都會經過action
特性把表單內容提交到另一個頁面,而在html5
中,爲不一樣的「提交」按鈕分別添加formaction
特性後,該特性會覆蓋表單的action
特性,將表單提交至不一樣的頁面。<form id="form1" method="post"> <input name="name" type="text" form="form1"/> <input type="submit" value="提交page1" formaction="?page=1"/> </form>
formmethod,formenctype,formnovalidate,formtarget
特性:formmethod
特性會覆蓋表單的method
特性;formenctype
特性可覆蓋表單的enctype
;formnovalidate
特性可覆蓋novalidate
特性,formtarget
特性能夠覆蓋表單的target
特性。placeholder
特性,向用戶提示描述性的信息。autofocus
特性,用於全部類型的input
元素,當頁面加載完成時,可自動獲取焦點,每一個頁面只容許出現一個有autofocus
特性的input
元素,若是設置多個,至關於未指定該行爲。autocomplete
特性:應用於form
元素和輸入型的input
元素,用於表單的自動完成。能夠autocomplete="on"
,其能夠指定"on","off"和" "
不指定。list
特性和datalist
元素,能夠爲某個可輸入的input
元素定義一個選值列表。<input name="email" type="email" list="emaillist"/> <datalist id="emaillist"> <option value="1@qq.com"> dada </option> <option value="2@qq.com"> dada2 </option> </datalist>
keygen
元素:提供了一種安全的方式來驗證用戶,該元素有密鑰生成的功能,在提交表單時,會分別生成一個私人密鑰和一個公共密鑰,私人密鑰保存在客戶端,公共密鑰則經過網絡傳輸至服務器。<form action=""> <input type="text" name="name"/> <br> <keygen name="security"/> <br><input type="submit"/> </form>
output
元素用於不一樣類型的輸出,該元素必須從屬於某個表單,便是寫在表單的內部。<form oninput="x.value=da.value"> <input type="range" name="da" value="20"/> <output name="x"></output> </form>
HTML5
如何實現跨域response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST"); response.setHeader("Access-Control-Allow-Headers", "x-requested-width,content-type");
WebSql
WebSql
是一個在瀏覽器客戶端的結構關係數據庫,是瀏覽器內的本地RDBMS
關係型數據庫管理系統,可使用SQL
查詢。html5
WebSql
是基於SQLite
的。
// 在代碼login.php始終都不該該緩存或者離線訪問 NETWORK: login.php
網絡命令描述不須要緩存的文件。
Canvas
和SVG
的區別是什麼
SVG
是可縮放矢量圖形,它是基於文本的圖形語言,使用文本,線條,點等來繪製圖像。
a. 一旦Canvas
繪製完成將不能訪問像素或操做它,任何使用SVG
繪製的形狀都能被記憶和操做,能夠被瀏覽器再次顯示。java
b. Canvas
對繪製動畫和遊戲有利,SVG
對建立圖像有利。git
c. 由於不須要記住以後的事,因此Canvas
運行快,而SVG
須要記錄座標,因此運行慢。程序員
d. 在Canvas
中不能爲繪製對象綁定相關事件;在SVG
中能夠爲繪製對象綁定相關事件。github
e. Canvas
繪製出的是位圖,所以與分辨率有個,SVG
是矢量圖,與分辨率無關。web
使用SVG
繪製:
<svg xmlns="http://ww.xx.xx/pic/svg" version="1.1"> <rect stype="fill:rgb(255,100,0);" height="200" width="400"></rect> </svg>
使用Canvas
繪製:
<canvas id="myCanvas" width="500" height="500"></canvas> var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); ctx.rect(100,100,300,200); ctx.fillStyle="red" ctx.fill()
本地存儲的數據沒有生命週期,它將一直存儲數據,直到用戶從瀏覽器清除或者使用
javascript
代碼移除。
API
required
特性:表示此項的值不能爲空,不然沒法提交表單。pattern
特性用於input
元素定義一個驗證模式。<input name="code" type="text" value="" pattern="[0-9]{6}" placeholder="6爲郵政編碼"/>
min,max,step
特性novalidate
用於指定表單或表單內的元素在提交時不驗證,form
元素應用novalidate
特性,表示表單中的全部元素在提交時再也不驗證。validaty
屬性用於獲取表單元素的ValidityState
對象,該對象包含8個方面的驗證結果。ValidityState
對象會持續存在,每次獲取validity
屬性時,返回的是同一個ValidityState
對象。var validityState=document.getElementById("username").validity;
willValidate
屬性,用於獲取一個布爾值,表示表單元素是否須要驗證,若是表單元素設置了required
特性或pattern
特性,則willValidate
屬性爲true
,即表單的驗證將執行。var willValidate=document.getElementById("username").willValidate;
validationMessage
屬性,用於獲取表單元素的錯誤提示信息var validationMessage = document.getElementById("username").validationMessage;
ValidityState
對象,是經過validity
屬性獲取的,該對象有8個屬性。
a. valueMissing
屬性:必填的表單元素的值爲空。若是表單元素設置了required
特性,則表示必填,若是必填項爲空,就沒法經過表單的驗證,valueMissing
屬性會返回true
,不然反之。
b. typeMismatch
屬性:輸入值與type
類型不匹配。html5
增長的表單類型email
等,都包含一個原始的類型驗證,若是用戶輸入的內容與表單類型不符合,typeMismatch
屬性將返回true
,不然反之。
c. patternMismatch
屬性:輸入值與pattern
特性的正則不匹配。表單元素可經過pattern
特性數組正則表達式的驗證模式,若是輸入內容不符,patternMismatch
將返回true
,不然反之。
d. tooLong
屬性:輸入的內容大小超過了表單的元素的maxLength
特性限定的字符長度。若是超過tooLong
屬性返回true
,不然反之。
e. rangeOverflow
屬性:輸入的值大於max
特性的值。通常用於填寫數值的表單元素,也可能會使用max
特性設置數值範圍的最大值,若是輸入的數值大於最大值,則rangeOverflow
返回true
,不然反之。
f. rangeUnderflow
屬性,輸入的值小於min
特性的值,上述雷同。
g. stepMismatch
屬性,輸入的值不符合step
特性所推算出的規則。不符爲true
,不然反之。
h. customError
屬性,使用自定義的驗證錯誤提示信息,在有些狀況下不適合使用瀏覽器內置的驗證錯誤提示信息,須要自定義,當輸入值不符合語義規則,頁面會提示自定義的錯誤信息。
表單驗證的方法
checkValidity()
方法,顯式驗證方法,每一個表單元素均可以調用checkValidity()
方法,它返回一個布爾值,表示是否經過驗證。默認狀況下,表單的驗證發生在表單提交時,若是使用checkValidity()
方法,能夠在須要的任何地方驗證表單。setCustomValidity()
方法,自定義錯誤提示信息的方法。當默認的提示錯誤知足不了需求時,能夠經過該方法自定義錯誤提示。當經過此方法自定義錯誤提示信息時,元素的validationMessage
屬性值會更改成定義的錯誤提示信息,同時ValidityState
對象的customError
屬性值變成true
。cookie
,sessionStorage
,localStorage
cookie
數據存放在客戶的瀏覽器上,session
數據存放在服務器上。cookie
不是很安全,別人能夠分析存放在本地的cookie
並進行cookie
欺騙。session
會在必定時間內保存在服務器上,當訪問增長時,會佔用較多服務器的資源。爲了減輕服務器的負擔,應當使用cookie
在適當的狀況下。cookie
保存的數據不能超過4kb,不少瀏覽器都限制一個站點最多保存20個cookie
session
中,其餘能夠存放在cookie
中。cookie
的數量和長度有限制,每一個domain
最多隻能有20條cookie
,每一個cookie
的長度不能超過4kb,不然會被裁掉。cookie
被別人攔截了,就能夠取得全部的session
信息,即便加密也是沒有用,攔截者不須要知道cookie
的意義,只要原樣轉發cookie
就能夠到達目的。cookie
中的session
對象的大小。ssl
,下降cookie
被破解的可能性。cookie
中存放不敏感數據,即便被盜也不會有重大的損失。cookie
的生命週期,使之不會永遠有效,數據偷盜者極可能獲得一個過時的cookie
。cookie
最大爲4096字節,爲了兼容性,通常不能超過4095字節。cookie
ie6
或更低版本最多有20個cookie
ie7
和以後的版本最多能夠有50個cookie
firefox
最多能夠有50個cookie
Chrome
和Safari
沒有硬性限制sessionStorage
用於在本地存儲一個會話中的數據,這些數據只有同一個會話中的頁面才能訪問,當會話結束後,數據也隨之銷燬,所以sessionStorage
不是一種持久化的本地存儲,僅僅是會話級別的存儲。localStorage
用於持久化本地存儲,除非主動刪除數據,不然數據通常是永久不會過時的。localStorage
是爲了更大容量的存儲設計的,cookie
的大小是有受限制的,而且每次請求一個新頁面時,cookie
都會被髮送過去,這無形中浪費了帶寬,cookie
須要制定做用域,不能夠跨域調用。HTML5
爲瀏覽器提供了哪些數據存儲方案在較高版本的瀏覽器中,提供了sessionStorage
和globalStorage
,在html5
規範中localStorage
取代了globalStorage
。
應用程序緩存:
HTML5
應用緩存的目的是幫助用戶離線瀏覽頁面,若是網絡鏈接不可用,打開的頁面就來自瀏覽器緩存,離線應用緩存能夠幫助用戶達到這個目的。
本地存儲數據持續永久,可是會話存儲在瀏覽器打開時有效,在瀏覽器關閉時會話重置存儲數據。
提高網站的性能:
<!doctype html> <html manifest="dadda.appcache"> </html>
在標籤頁之間,調用localstorage,cookies
等數據存儲,能夠實現標籤頁之間的通訊。
Web Worker
和webSocket
的做用WebSocket
:它是web
應用程序的傳輸協議,提供了雙向的,按序到達的數據流,它是html5
新增的協議,WebSocket
的鏈接是持久的,它在客戶端和服務器之間保持雙工鏈接,服務器的更新能夠及時推送到客戶端,而不須要客戶端以必定的時間間隔去輪詢。
Web Worker
:經過worker=new Worker(url)
加載一個javascript
文件,建立一個Worker
,同時返回一個Worker
實例;用worker.postMessage(data)
向Worker
發送數據;綁定worker.onmessage
接收Worker
發送過來的數據;可使用worker.terminate()
終止一個Worker
的執行。
HTML5
新特性拖放api
,語義化更好的內容標籤,音頻,視頻,畫布,地理api
等,本地離線存儲,會話存儲,表單控件。
嵌入音頻:
<audio controls> <source src="dada.mp3" type="audio/mpeg"> dadaqianduan.cn </audio>
嵌入視頻:
<video width="450" height="100" controls> <source src="dada.mp4" type="video/mp4"> dadaqianduan.cn </video>
新增表單屬性包括:datalist,datetime,output,keygen,date,month,week,time,number,range,emailurl
提供了不少新的api
,包括Media API, Text Track API, Application Cache API, User Interaction API, Data Transfer API, Command API, Constraint Validation API, History API
html
和html5
用DOCTYPE
聲明新增的結構元素和功能元素來區別它們。
HTML5
使用的字符集<meta charset="UTF-8">
HTML5 Canvas
元素有什麼用Canvas
元素用於在網頁上繪製圖形,該元素標籤的強大之處在於能夠直接在html
上進行圖形操做。
我是Jeskson(達達前端),感謝各位人才的:點贊、收藏和評論,咱們下期見!(如本文內容有地方講解有誤,歡迎指出☞謝謝,一塊兒學習了)
文章持續更新,本文 http://www.dadaqianduan.cn/#/ 已經收錄github收錄,歡迎Star:https://github.com/webVueBlog/WebFamily