標籤:工作 問題 ie8 tee 底線 模式 http 就會 基本知識
一些js基本知識點
Doctype 瀏覽器渲染模式
在多年以前(IE6誕生以前),各瀏覽器都處於各自比較封閉的發展中(基本沒有相容性可談)。隨著WEB的發展,相容性問題的解決越來越顯得迫切,隨即,各瀏覽器廠商發布了按照標準模式(遵循各廠商制定的統一標準)工作的瀏覽器,比如IE6就是其中之一。但是考慮到以前建設的網站並不支援標準模式,所以各瀏覽器在加入標準模式的同時也保留了混雜模式(即以前那種未按照統一標準工作的模式,也叫怪異模式)。
‘
標準模式(不相容之前的文法)
html 4.0
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
xhtml 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
html5
<!DOCTYPE html>
P.S. 細心的你可以看出隨著html版本的發展,標準模式的寫法也在變化著
怪異模式 / 混雜模式
label
<label for="input">User:</label> <input id="input" type="text" name="user" value="" placeholder="請輸入使用者名稱" />
圖片預先載入
假設這樣一種需求,在文檔載入完畢後的某個時刻,可能幾秒後,可能幾分鐘後,也可能半小時後,我們要通過js動態插入一張10M的大圖片?
會產生這樣的問題?圖片太大,網速又不快,所以圖片載入需要很長時間,所以導致頁面上的那個圖片只呈現了部分,甚至沒有呈現,一片空白,形成了極其差的使用者體驗。
如何解決呢?那就是圖片預先載入,在圖片還沒動態插入之前,我們就創造img節點,並為之設定src,在設定src後,瀏覽器就會開始下載src上的資源,然後在我們需要的時候即可瞬間插入文檔
啟發?在請求的資源需要載入很長時間的情況下,我們可以預先載入,在需要使用的時候,直接用就可以,極大提高了使用者體驗
封裝 getElementsByClassName(); IE8及以下不相容
// 封裝js中的getElenmentsByClassName(); Document.prototype.getByClassName = function (className) { var allEle = document.getElementsByTagName(‘*‘); var retArr = { length: 0, push: Array.prototype.push }; var len = allEle.length; var regBlank = /^\s|\s$/g; for(var i = 0; i < len; i++) { var strForClass = allEle[i].className allEle[i].className && allEle[i].className.replace(regBlank, ‘‘).indexOf(className) !== -1 && retArr.push(allEle[i]); } return retArr; }
Math對象
Math.sqrt()
Math.floor()
Math .ceil()
Math.random()
文檔片段
var frag = document.createDocumentFragment(); var div = document.createElement(‘div‘); var span = document.createElement(‘span‘); frag.sppendChild(div); frag.appendChild(span); document.body.appendChild(frag);
cdn
簡單地說,內容分髮網絡(CDN)是一個經策略性部署的整體系統,包括分布式儲存、負載平衡、網路請求的重新導向和內容管理4個要件,而內容管理和全域的網路流量管理(Traffic Management)是CDN的核心所在。
通過使用者就近性和伺服器負載的判斷,CDN確保內容以一種極為高效的方式為使用者的請求提供服務。總的來說,內容服務基於快取服務器,也稱作代理緩衝(Surrogate),
它位於網路的邊緣,距使用者僅有"一跳"(Single Hop)之遙。同時,代理緩衝是內容供應商原始伺服器(通常位於CDN服務提供者的資料中心)的一個透明鏡像。
這樣的架構使得CDN服務提供者能夠代表他們客戶,即內容供應商,向終端使用者提供儘可能好的體驗,而這些使用者是不能容忍請求回應時間有任何延遲的。
JS一些碎知識點