知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
Web h5開發(fā) 初學(xué)總結(jié)
發(fā)表時間:2018-7-25
發(fā)布人:葵宇科技
瀏覽次數(shù):65
h5寬泛定義
html5 = 標(biāo)記+javascript api+css
HTML標(biāo)記(也稱為結(jié)構(gòu))
CSS樣式(也稱為表示)
JavaScript(也稱為行為)
h5前后對比
H4
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.3c.org/TR/html4/strict.dtd">
<meta http-equiv="content-type" content="text/html" charset="utf-8">
<link type="text/css" rel="stylesheet" href="lounge.css">
<script type="text/javascript" src=”lounge.js”></script>
H5
<!doctype html>
<meta charset="utf-8">
<link rel="stylesheet" href="lounge.css">
<script src="lounge.js"></script>
h5工作方式
1.瀏覽器加載一個文檔,其中包括HTML寫的標(biāo)記和CSS寫的樣式
2.瀏覽器加載頁面時,還會為你的文檔創(chuàng)建一個內(nèi)部模型,其中包含HTML標(biāo)記的所有元素
<1.對于html中的每個元素,瀏覽器會創(chuàng)建一個表示該元素的對象,把它與所有其他元素放在一個類似樹的結(jié)構(gòu)中
<2.我們把這個樹稱為文檔對象模型(document object model),或者簡稱為dom。
3.瀏覽器加載頁面時,還會加載JavaScript代碼,通常頁面加載之后就開始執(zhí)行這些代碼
4.通過這些API,你可以訪問音頻和視頻、使用畫布完成2D繪圖,訪問本地存儲,還可以使用構(gòu)建應(yīng)用所需的很多其他優(yōu)秀技術(shù)。要記住,要想使用所有的這些API,需要用到JavaScript
瀏覽器支持h5的現(xiàn)狀
視頻音頻畫布web存儲地理定位web工作線程離線web應(yīng)用Firefox支持支持支持支持支持支持Safari支持支持支持支持支持支持Chrome支持支持支持支持支持支持MobileWebKit支持支持支持支持支持支持Opera支持支持支持支持支持支持IE6/7IE8 支持 IE9支持支持支持支持支持對應(yīng)瀏覽器輸入html5test.com即可獲取到當(dāng)前瀏覽器對h5支持的程度
JavaScript相關(guān)知識
頁面中添加JavaScript
<head> 頁面加載之前就會執(zhí)行
<body> 頁面加載時候執(zhí)行
大多數(shù)情況,代碼會增加到頁面的head的部分,如果將代碼增加到體的末尾,這會使性能稍有提升,不過只有確實需要深度優(yōu)化頁面性能時才有必要這么做。
一件重要的事情,頁面完全加載之后再執(zhí)行JavaScript代碼
做法如下:
<script>
function init(){
…
}
window.onload = init;
</script>
頁面完全加載之前不要打擾DOM
1.瀏覽器加載頁面創(chuàng)建文檔的一個內(nèi)部模型,包括標(biāo)記的所有元素
2.Js可以與dom交互來訪問元素以及元素中的內(nèi)容,js可以使用dom來創(chuàng)建修改刪除元素等
3.Js修改了dom時,瀏覽器會動態(tài)更新頁面
頁面完全加載之前,去調(diào)js,如果dom沒有創(chuàng)建,那么
<p id=“greenplanet”>
根本不存在。
window.onload = init 不加括弧是因為加了括號會調(diào)用函數(shù),而不是使用它的值
命名規(guī)范
JavaScript 命名規(guī)范
var thisNotAJoke;
var _myVariable;
var $importantVar;
變量名 駝峰式“camel case”記法
一個噴火的雙頭龍 twoHeadDragonWithFire
HTML 標(biāo)簽id命名規(guī)范 全小寫 id=“playlist”
文件夾/文件命名規(guī)范 短線"-" basic-config-register
html標(biāo)記大小寫不敏感,javascript大小寫敏感
詳細(xì)使用
1.javascript只有一個全局域,避免沖突,盡可能減少全局變量
2.向一個沒有聲明的新變量名賦值(沒有var)會當(dāng)做一個全局變量
3.函數(shù)可以不指定函數(shù)名
var f = function(num){
return num +1;
}
var result = f(1); //用變量來調(diào)用函數(shù)
4.創(chuàng)建一個對象
var fido = {
name:"Fideo",
weight:40,
breed:"Mixed",
loves:["walks", "fetching baslls"]
}
1>訪問屬性
fido["breed"] 或者 fido.breed
2>枚舉所有屬性 for-in
var prop;
for(prop in fido){
if(prop=="name"){
…
}
}
3>添加屬性 只需為一個新屬性名賦值
fido.age = 5; //fido會多出一個age屬性
4>刪除屬性
delete fido.age;
5.把對象作為參數(shù)傳入一個函數(shù)時候,相當(dāng)于傳遞的是對象的指針
function loseWeight(dog){
dog.weight = dog.weight – 10;
}
fido.weight = 48;
loseWeight(fido);
fido里的weight也會減去10;
對象也可以有行為
var fido = {
name:"Fideo",
weight:40,
breed:"Mixed",
loves:["walks", "fetching baslls"],
bark: function(){
alert("Woof woof! ");
}
}
fido. bark();調(diào)用fido的brak方法
6.this關(guān)鍵字
var fido = {
name:"Fideo",
weight:40,
breed:"Mixed",
loves:["walks", "fetching baslls"],
bark: function(){
this.weight = 30;
alert("Woof woof!");
}
}
this獲得fido對象引用
7.構(gòu)造函數(shù)
function Dog(name,breed,weight){
this.name = name;
this.breed = breed;
this.weight = weight;
this.bark = function(){
if(this.weight>25){
alert("this.name"+"says Woof!");
}else{
alert("this.name"+"says Yip!");
}
};
}
var fido = new Dog("Fido", "Mixed",38);//調(diào)用構(gòu)造函數(shù)
fido.bark();
關(guān)鍵字API
window
window 對象表示你的JavaScript程序的全局環(huán)境
location 包含頁面的url
status 包含將在瀏覽器區(qū)顯示的一個串(左下角)
>var work = new Worker("worker.js");// worker.js是線程的實現(xiàn)代碼 window.onload = function(){ var work = new Worker("worker.js"); work.postMessage("ping"); }可以發(fā)送串、數(shù)組、json對象等復(fù)雜的消息,但不能發(fā)送函數(shù)
3.從工作線程接收消息
window.onload = function(){ var work = new Worker("worker.js"); work.postMessage("ping"); work.onmessage = function(event){ var message ="Worker says"+ event.data; document.getElementById("output").innerHTML = message; } }
event.data 屬性,包含工作線程發(fā)送的消息
event.target 工作線程的引用,可以知道消息來自哪個工作線程postmessage 向工作線程傳遞一個消息
>onmessage = pingPong; function pingPong(event){ if(event.data=="ping"){ postMessage("pong"); } }5.importScript
Web工作線程的一個全局函數(shù),可以使用這個函數(shù)向工作線程中導(dǎo)入一個或多個JavaScript文件。importScript("http://bigscience.org/nuclear.js",//文件或者URL "http://nasa.gov/rocket.js", "mylibs/atomsmasher.js"); //終止工作線程 worker.terminate();//如果正在運行,那么會異常終止。終止后無法重用,只能再創(chuàng)建新的工作線程。 worker.onerror = function(error){//捕獲工作線程中的錯誤 }
工作線程中還可以創(chuàng)建子工作線程。
本地存儲
Cookie 包含一些鍵值對
Web存儲
1.頁面可以在瀏覽器的本地存儲中存儲一個或多個鍵值對
2.然后使用鍵來獲取相應(yīng)的值localStorage.setItem("sticky_0", "Pick up dry cleaning"); var sticky = localStorage.getItem("sticky_0"); var sticky = localStorage ["sticky_0"];//可以把localStorage對象看成一個關(guān)聯(lián)數(shù)組 localStorage.removeItem("sticky_0");
注:瀏覽器每個域只有5MB的存儲空間
遍歷localStorage
for(var i=0;i<localStorage.length;i++){ var key = localStorage.key(i); var value = localStorage[key]; }
localStorage只能存儲字符串,但是可以利用JSON 的stringfy和parse方法,把數(shù)組或者對象轉(zhuǎn)換成字符串后存進去。
video元素
<video controls autoplay src="video/preroll.mp4”//視頻源位置 width="480" height="360" poster="images/prerollposter.jpg" id="video" </video>
不同瀏覽器,視頻控件外觀不同
主流瀏覽器支持3種不同視頻格式
1.MP4 H.264視頻編碼 AAC音頻編碼
2.WebM Vp8視頻編碼 Vorbis音頻編碼
3.Ogg Theora視頻編碼 Vorbis音頻編碼<video controls src="video/preroll.mp4"//視頻源位置 width="480" height="360" poster="images/prerollposter.jpg" id="video” <source src="video/preroll.mp4"> <source src="video/preroll.webm"> <source src="video/preroll.ogv"> <p>Sorry,your browser doesn't support the video element</p> </video>
瀏覽器從上往下查找,直到找到它能播的一種格式
具體的指向一種視頻格式
<source src="video/preroll.ogv" type='video/ogg; codecs="theora,vorbis"'>
Flash作為退路
<video controls autoplay src="video/preroll.mp4"//視頻源位置 width="480" height="360" poster="images/prerollposter.jpg" id="video” <object>…</object>//如果瀏覽器不認(rèn)識video元素,就會使用object </video>
相關(guān)案例查看更多
相關(guān)閱讀
- 小程序制作
- 安家微信小程序
- flex
- 網(wǎng)站建設(shè)哪家強
- 微信小程序
- 云南網(wǎng)站建設(shè)
- web開發(fā)技術(shù)
- 云南網(wǎng)站建設(shè)外包
- 文山小程序開發(fā)
- 百度快速排名
- 小程序分銷商城
- 云南網(wǎng)絡(luò)公司
- 商標(biāo)
- 云南網(wǎng)站開發(fā)哪家好
- 網(wǎng)站建設(shè)價格
- 云南網(wǎng)站建設(shè)哪家強
- 云南省建設(shè)廳網(wǎng)站官網(wǎng)
- 網(wǎng)站建設(shè)招商
- 用戶登錄
- 小程序用戶登錄
- 網(wǎng)站建設(shè)專家
- 云南網(wǎng)站建設(shè)一條龍
- web前端
- 昆明網(wǎng)站制作
- 網(wǎng)站開發(fā)公司哪家好
- 服務(wù)器
- 網(wǎng)站優(yōu)化哪家好
- 網(wǎng)站建設(shè)專業(yè)品牌
- APP
- 云南小程序被騙