前端面試題總結

1.請實現,鼠標點擊頁面中的任意標籤,alert該標籤的名稱.(注意兼容性)
//事件的有捕獲類型和冒泡類型,在這裏咱們能夠利用冒泡解決該問題javascript

var el=document.getElementsByTagName('body')
el[0].onclick=function(event){
var evt=event||window.event;
var selected=evt.target||evt.srcElement;
alert(selected.tagName);
}

2.異步加載js的幾種方式html

默認狀況javascript是同步加載的,也就是javascript的加載時阻塞的,後面的元素要等待javascript加載完畢後才能進行再加載,對於一些意義不是很大的javascript,若是放在頁頭會致使加載很慢的話,是會嚴重影響用戶體驗的。java

(1)defer,只支持IE數據庫

defer屬性的定義和用法(我摘自w3school網站)
defer 屬性規定是否對腳本執行進行延遲,直到頁面加載爲止。
有的 javascript 腳本 document.write 方法來建立當前文檔內容,其餘腳本就不必定是了。瀏覽器

(2)async:
async的定義和用法(是HTML5的屬性)
async 屬性規定一旦腳本可用,則會異步執行。
註釋:async 屬性僅適用於外部腳本(只有在使用 src 屬性時)。
註釋:有多種執行外部腳本的方法:
•若是 async="async":腳本相對於頁面的其他部分異步地執行(當頁面繼續進行解析時,腳本將被執行)
•若是不使用 async 且 defer="defer":腳本將在頁面完成解析時執行
•若是既不使用 async 也不使用 defer:在瀏覽器繼續解析頁面以前,當即讀取並執行腳本緩存

(3)建立script,插入到DOM中,加載完畢後callBack。服務器

3.Html5有哪些類型的存儲session

Cookies:缺點有在請求頭上帶着數據,大小是4k以內。主Domain污染。app

本地存儲localStorage:以鍵值對(Key-Value)的方式存儲,永久存儲,永不失效,除非手動刪除。
IE9 localStorage不支持本地文件,須要將項目署到服務器,才能夠支持!
if(window.localStorage){
 alert('This browser supports localStorage');
}else{
 alert('This browser does NOT support localStorage');
}異步

本地存儲sessionstorage: sessionStorage 在關閉頁面後即被清空。

離線緩存(application cache):本地緩存應用所需的文件
Web SQL:關係數據庫,經過SQL語句訪問
Web SQL 數據庫 API 並非 HTML5 規範的一部分,可是它是一個獨立的規範,引入了一組使用 SQL 操做客戶端數據庫的 APIs。

IndexedDB:索引數據庫 (IndexedDB) API(做爲 HTML5 的一部分)對建立具備豐富本地存儲數據的數據密集型的離線 HTML5 Web 應用程序頗有用。同時它還有助於本地緩存數據,使傳統在線 Web 應用程序(好比移動 Web 應用程序)可以更快地運行和響應。

4.HTML5 應用緩存和常規的 HTML 瀏覽器緩存有何差異?HTML5 的應用緩存最關鍵的就是支持離線應用,可獲取少數或者所有網站內容,包括 HTML、CSS、圖像和 JavaScript 腳本並存在本地。該特性加速了網站的性能,可經過以下方式實現:manifest 文件是簡單的文本文件,它告知瀏覽器被緩存的內容(以及不緩存的內容)。<!doctype html><html manifest="example.appcache">.....</html>Application Cache的三個優點:① 離線瀏覽 ② 提高頁面載入速度 ③ 下降服務器壓力

相關文章
相關標籤/搜索