




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
WebAPIs第五天Bom操作依托BOM對(duì)象實(shí)現(xiàn)對(duì)歷史、地址、瀏覽器信息的操作或獲取具備利用本地存儲(chǔ)實(shí)現(xiàn)學(xué)生信息表案例的能力Window對(duì)象本地存儲(chǔ)綜合案例Window對(duì)象BOM(瀏覽器對(duì)象模型)定時(shí)器-延時(shí)函數(shù)JS執(zhí)行機(jī)制location對(duì)象navigator對(duì)象histroy對(duì)象01目標(biāo):學(xué)習(xí)window對(duì)象的常見屬性,知道各個(gè)BOM對(duì)象的功能含義1.1BOMBOM(BrowserObjectModel)是瀏覽器對(duì)象模型window對(duì)象是一個(gè)全局對(duì)象,也可以說是JavaScript中的頂級(jí)對(duì)象像document、alert()、console.log()這些都是window的屬性,基本BOM的屬性和方法都是window的。所有通過var定義在全局作用域中的變量、函數(shù)都會(huì)變成window對(duì)象的屬性和方法window對(duì)象下的屬性和方法調(diào)用的時(shí)候可以省略windowWindow對(duì)象BOM(瀏覽器對(duì)象模型)定時(shí)器-延時(shí)函數(shù)JS執(zhí)行機(jī)制location對(duì)象navigator對(duì)象histroy對(duì)象01目標(biāo):學(xué)習(xí)window對(duì)象的常見屬性,知道各個(gè)BOM對(duì)象的功能含義1.2定時(shí)器-延時(shí)函數(shù)JavaScript內(nèi)置的一個(gè)用來讓代碼延遲執(zhí)行的函數(shù),叫setTimeout語法:setTimeout僅僅只執(zhí)行一次,所以可以理解為就是把一段代碼延遲執(zhí)行,平時(shí)省略window清除延時(shí)函數(shù):注意點(diǎn)延時(shí)器需要等待,所以后面的代碼先執(zhí)行每一次調(diào)用延時(shí)器都會(huì)產(chǎn)生一個(gè)新的延時(shí)器1.2定時(shí)器-延時(shí)函數(shù)兩種定時(shí)器對(duì)比:執(zhí)行的次數(shù)延時(shí)函數(shù):執(zhí)行一次間歇函數(shù):每隔一段時(shí)間就執(zhí)行一次,除非手動(dòng)清除5秒鐘之后消失的廣告需求:5秒鐘之后,廣告自動(dòng)消失分析:①:設(shè)置延時(shí)函數(shù)②:隱藏元素Window對(duì)象BOM(瀏覽器對(duì)象模型)定時(shí)器-延時(shí)函數(shù)JS執(zhí)行機(jī)制location對(duì)象navigator對(duì)象histroy對(duì)象01目標(biāo):學(xué)習(xí)window對(duì)象的常見屬性,知道各個(gè)BOM對(duì)象的功能含義經(jīng)典面試題JavaScript語言的一大特點(diǎn)就是單線程,也就是說,同一個(gè)時(shí)間只能做一件事。這是因?yàn)镴avascript這門腳本語言誕生的使命所致——JavaScript是為處理頁面中用戶的交互,以及操作DOM而誕生的。比如我們對(duì)某個(gè)DOM元素進(jìn)行添加和刪除操作,不能同時(shí)進(jìn)行。應(yīng)該先進(jìn)行添加,之后再刪除。單線程就意味著,所有任務(wù)需要排隊(duì),前一個(gè)任務(wù)結(jié)束,才會(huì)執(zhí)行后一個(gè)任務(wù)。這樣所導(dǎo)致的問題是:如果JS執(zhí)行的時(shí)間過長(zhǎng),這樣就會(huì)造成頁面的渲染不連貫,導(dǎo)致頁面渲染加載阻塞的感覺。1.3JS執(zhí)行機(jī)制為了解決這個(gè)問題,利用多核CPU的計(jì)算能力,HTML5提出WebWorker標(biāo)準(zhǔn),允許JavaScript腳本創(chuàng)建多個(gè)線程。于是,JS中出現(xiàn)了同步和異步。同步前一個(gè)任務(wù)結(jié)束后再執(zhí)行后一個(gè)任務(wù),程序的執(zhí)行順序與任務(wù)的排列順序是一致的、同步的。比如做飯的同步做法:我們要燒水煮飯,等水開了(10分鐘之后),再去切菜,炒菜。異步你在做一件事情時(shí),因?yàn)檫@件事情會(huì)花費(fèi)很長(zhǎng)時(shí)間,在做這件事的同時(shí),你還可以去處理其他事情。比如做飯的異步做法,我們?cè)跓耐瑫r(shí),利用這10分鐘,去切菜,炒菜。他們的本質(zhì)區(qū)別:這條流水線上各個(gè)流程的執(zhí)行順序不同。1.3JS執(zhí)行機(jī)制同步任務(wù)同步任務(wù)都在主線程上執(zhí)行,形成一個(gè)執(zhí)行棧。異步任務(wù)JS的異步是通過回調(diào)函數(shù)實(shí)現(xiàn)的。一般而言,異步任務(wù)有以下三種類型:1、普通事件,如click、resize等2、資源加載,如load、error等3、定時(shí)器,包括setInterval、setTimeout等異步任務(wù)相關(guān)添加到任務(wù)隊(duì)列中(任務(wù)隊(duì)列也稱為消息隊(duì)列)。
console.log(1)console.log(2)setTimeout(fn,0)執(zhí)行棧fn任務(wù)隊(duì)列1.3JS執(zhí)行機(jī)制1.先執(zhí)行執(zhí)行棧中的同步任務(wù)。2.異步任務(wù)放入任務(wù)隊(duì)列中。3.一旦執(zhí)行棧中的所有同步任務(wù)執(zhí)行完畢,系統(tǒng)就會(huì)按次序讀取任務(wù)隊(duì)列中的異步任務(wù),于是被讀取的異步任務(wù)結(jié)束等待狀態(tài),進(jìn)入執(zhí)行棧,開始執(zhí)行。事件循環(huán)主車道應(yīng)急車道
console.log(1)console.log(2)執(zhí)行棧setTimeout(fn,0)任務(wù)隊(duì)列1.3JS執(zhí)行機(jī)制由于主線程不斷的重復(fù)獲得任務(wù)、執(zhí)行任務(wù)、再獲取任務(wù)、再執(zhí)行,所以這種機(jī)制被稱為事件循環(huán)(
eventloop)。1.3JS執(zhí)行機(jī)制console.log(1)
document.addEventListener('click',
function
()
{
console.log(4)
})
console.log(2)
setTimeout(function
()
{
console.log(3)
},
3000)Window對(duì)象BOM(瀏覽器對(duì)象模型)定時(shí)器-延時(shí)函數(shù)JS執(zhí)行機(jī)制location對(duì)象navigator對(duì)象histroy對(duì)象01目標(biāo):學(xué)習(xí)window對(duì)象的常見屬性,知道各個(gè)BOM對(duì)象的功能含義1.4location對(duì)象
location的數(shù)據(jù)類型是對(duì)象,它拆分并保存了URL地址的各個(gè)組成部分常用屬性和方法:href屬性獲取完整的URL地址,對(duì)其賦值時(shí)用于地址的跳轉(zhuǎn)search屬性獲取地址中攜帶的參數(shù),符號(hào)?后面部分hash
屬性獲取地址中的啥希值,符號(hào)#后面部分reload方法用來刷新當(dāng)前頁面,傳入?yún)?shù)true時(shí)表示強(qiáng)制刷新
一、Window對(duì)象location的數(shù)據(jù)類型是對(duì)象,它拆分并保存了URL地址的各個(gè)組成部分常用屬性和方法:href屬性獲取完整的URL地址,對(duì)其賦值時(shí)用于地址的跳轉(zhuǎn)
5秒鐘之后跳轉(zhuǎn)的頁面需求:用戶點(diǎn)擊可以跳轉(zhuǎn),如果不點(diǎn)擊,則5秒之后自動(dòng)跳轉(zhuǎn),要求里面有秒數(shù)倒計(jì)時(shí)分析:①:目標(biāo)元素是鏈接②:利用定時(shí)器設(shè)置數(shù)字倒計(jì)時(shí)③:時(shí)間到了,自動(dòng)跳轉(zhuǎn)到新的頁面1.4location對(duì)象
location的數(shù)據(jù)類型是對(duì)象,它拆分并保存了URL地址的各個(gè)組成部分常用屬性和方法:search屬性獲取地址中攜帶的參數(shù),符號(hào)?后面部分
1.4location對(duì)象
location的數(shù)據(jù)類型是對(duì)象,它拆分并保存了URL地址的各個(gè)組成部分常用屬性和方法:hash屬性獲取地址中的哈希值,符號(hào)#后面部分后期vue路由的鋪墊,經(jīng)常用于不刷新頁面,顯示不同頁面,比如網(wǎng)易云音樂
1.4location對(duì)象
location的數(shù)據(jù)類型是對(duì)象,它拆分并保存了URL地址的各個(gè)組成部分常用屬性和方法:reload方法用來刷新當(dāng)前頁面,傳入?yún)?shù)true時(shí)表示強(qiáng)制刷新location.href
屬性獲取完整的URL地址,對(duì)其賦值時(shí)用于地址的跳轉(zhuǎn)search屬性獲取地址中攜帶的參數(shù),符號(hào)?后面部分hash屬性獲取地址中的啥希值,符號(hào)#后面部分reload方法用來刷新當(dāng)前頁面,傳入?yún)?shù)true時(shí)表示強(qiáng)制刷新Window對(duì)象BOM(瀏覽器對(duì)象模型)定時(shí)器-延時(shí)函數(shù)JS執(zhí)行機(jī)制location對(duì)象navigator對(duì)象histroy對(duì)象01目標(biāo):學(xué)習(xí)window對(duì)象的常見屬性,知道各個(gè)BOM對(duì)象的功能含義1.5navigator對(duì)象navigator的數(shù)據(jù)類型是對(duì)象,該對(duì)象下記錄了瀏覽器自身的相關(guān)信息常用屬性和方法:通過userAgent檢測(cè)瀏覽器的版本及平臺(tái)
//
檢測(cè)
userAgent(瀏覽器信息)
!(function
()
{
const
userAgent
=
navigator.userAgent
//
驗(yàn)證是否為Android或iPhone
const
android
=
userAgent.match(/(Android);?[\s\/]+([\d.]+)?/)
const
iphone
=
userAgent.match(/(iPhone\sOS)\s([\d_]+)/)
//
如果是Android或iPhone,則跳轉(zhuǎn)至移動(dòng)站點(diǎn)
if
(android
||
iphone)
{
location.href
=
''
}
})()Window對(duì)象BOM(瀏覽器對(duì)象模型)定時(shí)器-延時(shí)函數(shù)JS執(zhí)行機(jī)制location對(duì)象navigator對(duì)象histroy對(duì)象01目標(biāo):學(xué)習(xí)window對(duì)象的常見屬性,知道各個(gè)BOM對(duì)象的功能含義1.6histroy對(duì)象history的數(shù)據(jù)類型是對(duì)象,主要管理歷史記錄,該對(duì)象與瀏覽器地址欄的操作相對(duì)應(yīng),如前進(jìn)、后退、歷史記錄等常用屬性和方法:
history對(duì)象一般在實(shí)際開發(fā)中比較少用,但是會(huì)在一些OA辦公系統(tǒng)中見到。Window對(duì)象本地存儲(chǔ)綜合案例本地存儲(chǔ)本地存儲(chǔ)介紹本地存儲(chǔ)分類存儲(chǔ)復(fù)雜數(shù)據(jù)類型02目標(biāo):學(xué)習(xí)window對(duì)象的常見屬性,知道各個(gè)BOM對(duì)象的功能含義2.1本地存儲(chǔ)介紹以前我們頁面寫的數(shù)據(jù)一刷新頁面就沒有了,是不是?隨著互聯(lián)網(wǎng)的快速發(fā)展,基于網(wǎng)頁的應(yīng)用越來越普遍,同時(shí)也變的越來越復(fù)雜,為了滿足各種各樣的需求,會(huì)經(jīng)常性在本地存儲(chǔ)大量的數(shù)據(jù),HTML5規(guī)范提出了相關(guān)解決方案。1、數(shù)據(jù)存儲(chǔ)在用戶瀏覽器中2、設(shè)置、讀取方便、甚至頁面刷新不丟失數(shù)據(jù)3、容量較大,sessionStorage和localStorage約5M左右常見的使用場(chǎng)景:頁面刷新數(shù)據(jù)不丟失本地存儲(chǔ)本地存儲(chǔ)介紹本地存儲(chǔ)分類存儲(chǔ)復(fù)雜數(shù)據(jù)類型022.2本地存儲(chǔ)分類-localStorage目標(biāo):能夠使用localStorage把數(shù)據(jù)存儲(chǔ)的瀏覽器中作用:可以將數(shù)據(jù)永久存儲(chǔ)在本地(用戶的電腦),除非手動(dòng)刪除,否則關(guān)閉頁面也會(huì)存在特性:可以多窗口(頁面)共享(同一瀏覽器可以共享)以鍵值對(duì)的形式存儲(chǔ)使用2.2本地存儲(chǔ)分類-localStorage語法:localStorage.setItem(key,value)存儲(chǔ)數(shù)據(jù):localStorage.getItem(key)獲取數(shù)據(jù):localStorage.removeItem(key)刪除數(shù)據(jù):2.2本地存儲(chǔ)分類-localStorage瀏覽器查看本地?cái)?shù)據(jù):2.2本地存儲(chǔ)分類-sessionStorage特性:生命周期為關(guān)閉瀏覽器窗口在同一個(gè)窗口(頁面)下數(shù)據(jù)可以共享以鍵值對(duì)的形式存儲(chǔ)使用用法跟localStorage基本相同localStorage作用是什么?
可以將數(shù)據(jù)永久存儲(chǔ)在本地(用戶的電腦),除非手動(dòng)刪除,否則關(guān)閉頁面也會(huì)存在localStorage存儲(chǔ),獲取,刪除的語法是什么?
存儲(chǔ):localStorage.setItem(key,value)獲取:localStorage.getItem(key)刪除:localStorage.removeItem(key)本地存儲(chǔ)本地存儲(chǔ)介紹本地存儲(chǔ)分類存儲(chǔ)復(fù)雜數(shù)據(jù)類型022.3存儲(chǔ)復(fù)雜數(shù)據(jù)類型目標(biāo):能夠存儲(chǔ)復(fù)雜數(shù)據(jù)類型以及取出數(shù)據(jù)本地只能存儲(chǔ)字符串,無法存儲(chǔ)復(fù)雜數(shù)據(jù)類型.2.3存儲(chǔ)復(fù)雜數(shù)據(jù)類型解決:需要將復(fù)雜數(shù)據(jù)類型轉(zhuǎn)換成JSON字符串,在存儲(chǔ)到本地語法:JSON.stringify(復(fù)雜數(shù)據(jù)類型)將復(fù)雜數(shù)據(jù)轉(zhuǎn)換成JSON字符串存儲(chǔ)本地存儲(chǔ)中2.3存儲(chǔ)復(fù)雜數(shù)據(jù)類型問題:因?yàn)楸镜卮鎯?chǔ)里面取出來的是字符串,不是對(duì)象,無法直接使用字符串2.3存儲(chǔ)復(fù)雜數(shù)據(jù)類型解決:把取出來的字符串轉(zhuǎn)換為對(duì)象語法:JSON.parse(JSON字符串)將JSON字符串轉(zhuǎn)換成對(duì)象取出時(shí)候使用Window對(duì)象本地存儲(chǔ)綜合案例學(xué)生就業(yè)信息表需求:錄入學(xué)生信息,頁面刷新數(shù)據(jù)不丟失學(xué)生就業(yè)信息表需求:錄入學(xué)生信息,頁面刷新數(shù)據(jù)不丟失模塊分析:①:新增模塊,輸入學(xué)生信息,數(shù)據(jù)會(huì)存儲(chǔ)到本地存儲(chǔ)中②:渲染模塊,數(shù)據(jù)會(huì)渲染到頁面中③:刪除模塊,點(diǎn)擊刪除按鈕,會(huì)刪除對(duì)應(yīng)的數(shù)據(jù)學(xué)生就業(yè)信息表需求:錄入學(xué)生信息,頁面刷新數(shù)據(jù)不丟失思路分析:①:因?yàn)轫撁嫠⑿虏粊G失數(shù)據(jù),所以可能存在已有數(shù)據(jù),所以第一步,我們先找本地存儲(chǔ)里面查找是否有數(shù)據(jù),如果有數(shù)據(jù)先進(jìn)行渲染頁面,如果沒有數(shù)據(jù),我們放一個(gè)空數(shù)組,用來存放數(shù)據(jù)②:渲染模塊,數(shù)據(jù)會(huì)渲染到頁面中③:新增模塊,輸入學(xué)生信息,數(shù)據(jù)會(huì)存儲(chǔ)到本地存儲(chǔ)中,然后渲染頁面④:刪除模塊,點(diǎn)擊刪除按鈕,會(huì)刪除對(duì)應(yīng)的數(shù)據(jù),然后渲染頁面學(xué)生就業(yè)信息表步驟:需求①:讀取本地存儲(chǔ)數(shù)據(jù)
如果本地存儲(chǔ)有數(shù)據(jù),則返回JSON.parse()之后的對(duì)象
如果本地存儲(chǔ)沒有數(shù)據(jù),則聲明一個(gè)空的數(shù)組
學(xué)生就業(yè)信息表步驟:需求②:渲染模塊(1)遍歷數(shù)組,td里面填寫對(duì)應(yīng)td數(shù)據(jù),并追加給tbody
(2)盡量減少dom操作,所以此處我們不在使用創(chuàng)建節(jié)點(diǎn),追加節(jié)點(diǎn)方式(后面vue的做法)數(shù)組中map方法
迭代數(shù)組作用:map
迭代數(shù)組語法:數(shù)組中map方法
迭代數(shù)組使用場(chǎng)景:map可以處理數(shù)據(jù),并且返回新的數(shù)組數(shù)組中join方法
作用:join()
方法用于把數(shù)組中的所有元素轉(zhuǎn)換一個(gè)字符串語法:參數(shù):數(shù)組元素是通過參數(shù)里面指定的分隔符進(jìn)行分隔的學(xué)生就業(yè)信息表步驟:需求②:渲染模塊(1)遍歷數(shù)組,td里面填寫對(duì)應(yīng)td數(shù)據(jù),并追加給tbody
(2)盡量減少dom操作,所以此處我們不在使用創(chuàng)建節(jié)點(diǎn),追加節(jié)點(diǎn)方式(后面vue的做法)(3)我們使用map方法遍歷數(shù)組,直接返回整個(gè)tr,里面包含所有修改后的tr標(biāo)簽,里面更換數(shù)據(jù)(4)但是map方法返回的是一個(gè)修改后的數(shù)組,怎么辦?
所以我們通過join方法轉(zhuǎn)換為字符串(5)把返回的結(jié)果,通過innerHTML賦值給tbody數(shù)組中map方法
迭代數(shù)組使用場(chǎng)景:map可以處理數(shù)據(jù),并且返回新的數(shù)組[,]join(‘’)字符串追加給tbody數(shù)組中map方法
迭代數(shù)組使用場(chǎng)景:map可以處理數(shù)據(jù),并且返回新的數(shù)組map也稱為映射。映射是個(gè)術(shù)語,指兩個(gè)元素的集之間元素相互“對(duì)應(yīng)”的關(guān)系學(xué)生就業(yè)信息表步驟:需求③:錄入模塊(1)事件是提交事件,同樣阻止默認(rèn)提交事件(2)非空判斷。
-獲取所有需要填寫的表單,他們共同特點(diǎn)都有name屬性
-遍歷這些表單,如果有一個(gè)值為空,則return返回提示輸入為空中斷程序?qū)W生就業(yè)信息表步驟:需求③:錄入模塊(3)創(chuàng)建新的對(duì)象,里面存儲(chǔ)表單獲取過來的數(shù)據(jù),格式如右圖-創(chuàng)建一個(gè)空的對(duì)象
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 購(gòu)房合同補(bǔ)充協(xié)議范本
- 財(cái)務(wù)管理系統(tǒng)實(shí)施合同
- 農(nóng)業(yè)訂單合同樣本
- 材料供應(yīng)合同書樣本
- 度室內(nèi)裝飾壁畫合同:手繪墻畫服務(wù)協(xié)議
- 農(nóng)業(yè)灌溉合同轉(zhuǎn)讓協(xié)議
- 農(nóng)業(yè)機(jī)械租賃合同(范本7)
- 期貨市場(chǎng)算法交易策略定制服務(wù)考核試卷
- 家禽飼養(yǎng)業(yè)產(chǎn)品質(zhì)量安全追溯體系構(gòu)建考核試卷
- 工業(yè)控制計(jì)算機(jī)在印刷機(jī)械控制中的實(shí)踐考核試卷
- 生物醫(yī)藥研發(fā)實(shí)驗(yàn)室的安全風(fēng)險(xiǎn)評(píng)估與控制
- 合肥科技職業(yè)學(xué)院?jiǎn)握杏?jì)算機(jī)類考試復(fù)習(xí)題庫(kù)(含答案)
- 2018-2022年北京市中考真題數(shù)學(xué)試題匯編:填空壓軸(第16題)
- 初三物理常識(shí)試卷單選題100道及答案
- 2025年吉林省吉林市事業(yè)單位招聘入伍高校畢業(yè)生54人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《智能制造技術(shù)基礎(chǔ)》課件-第6章 智能制造裝備
- 鋼結(jié)構(gòu)地下停車場(chǎng)方案
- 《上市公司治理培訓(xùn)》課件
- 新人教版小學(xué)五年級(jí)數(shù)學(xué)下冊(cè)《第一單元 觀察物體(三)》2022課標(biāo)大單元整體教學(xué)設(shè)計(jì)-全析
- 《光伏電站運(yùn)行與維護(hù)》課件-項(xiàng)目五 光伏電站常見故障處理
- 2024年貴州公需科目答案
評(píng)論
0/150
提交評(píng)論