1癞尚、position的值量窘, relative和absolute分別是相對于誰進(jìn)行定位的遗契?
absolute :生成絕對定位的元素, 相對于最近一級的 定位不是 static 的父元素來進(jìn)行定位寡夹。
fixed (老IE不支持)生成絕對定位的元素,通常相對于瀏覽器窗口或 frame 進(jìn)行定位厂置。
relative 生成相對定位的元素菩掏,相對于其在普通流中的位置進(jìn)行定位。
static 默認(rèn)值昵济。沒有定位智绸,元素出現(xiàn)在正常的流中野揪。
sticky 生成粘性定位的元素,容器的位置根據(jù)正常文檔流計算得出瞧栗。
2斯稳、如何解決跨域問題
JSONP:
原理是:動態(tài)插入 script 標(biāo)簽,通過 script 標(biāo)簽引入一個js文件迹恐,這個js文件載入成功后會執(zhí)行我們在url參數(shù)中指定的函數(shù)挣惰,并且會把我們需要的 json 數(shù)據(jù)作為參數(shù)傳入。
由于同源策略的限制殴边, XmlHttpRequest 只允許請求當(dāng)前源(域名憎茂、協(xié)議、端口)的資源锤岸,為了實現(xiàn)跨域請求竖幔,可以通過 script 標(biāo)簽實現(xiàn)跨域請求,然后在服務(wù)端輸出JSON數(shù)據(jù)并執(zhí)行回調(diào)函數(shù)是偷,從而解決了跨域的數(shù)據(jù)請求拳氢。
優(yōu)點是兼容性好,簡單易用晓猛,支持瀏覽器與服務(wù)器雙向通信饿幅。缺點是只支持GET請求。
JSONP : json+padding (內(nèi)填充)戒职,顧名思義栗恩,就是把JSON填充到一個盒子里
<script>
? ? ?functioncreateJs(sUrl){varoScript = document.createElement('script');
? ? ? ? oScript.type ='text/javascript';
? ? ? ? oScript.src = sUrl;
? ? ? ?document.getElementsByTagName('head')[0].appendChild(oScript);
? ?}
? ? ? ?createJs('jsonp.js');
? ? ? ? box({'name':'test'});functionbox(json){alert(json.name);
}
</script>
CORS
服務(wù)器端對于 CORS 的支持,主要就是通過設(shè)置 Access-Control-Allow-Origin 來進(jìn)行的洪燥。如果瀏覽器檢測到相應(yīng)的設(shè)置磕秤,就可以允許 Ajax 進(jìn)行跨域的訪問。
通過修改document.domain來跨子域
將子域和主域的 document.domain 設(shè)為同一個主域.前提條件:這兩個域名必須屬于同一個基礎(chǔ)域名!而且所用的協(xié)議捧韵,端口都要一致市咆,否則無法利用 document.domain 進(jìn)行跨域
主域相同的使用 document.domain
使用window.name來進(jìn)行跨域
window 對象有個 name 屬性,該屬性有個特征:即在一個窗口(window)的生命周期內(nèi),窗口載入的所有的頁面都是共享一個 window.name 的再来,每個頁面對 window.name 都有讀寫的權(quán)限蒙兰, window.name 是持久存在一個窗口載入過的所有頁面中的
使用HTML5中新引進(jìn)的 window.postMessage 方法來跨域傳送數(shù)據(jù)
還有flash、在服務(wù)器上設(shè)置代理頁面等跨域方式..
XML 和 JSON 的區(qū)別芒篷?
(1).數(shù)據(jù)體積方面搜变。
JSON相對于XML來講,數(shù)據(jù)的體積小针炉,傳遞的速度更快些挠他。
(2).數(shù)據(jù)交互方面。
JSON與JavaScript的交互更加方便篡帕,更容易解析處理殖侵,更好的數(shù)據(jù)交互贸呢。
(3).數(shù)據(jù)描述方面。
JSON對數(shù)據(jù)的描述性比XML較差拢军。
(4).傳輸速度方面楞陷。
JSON的速度要遠(yuǎn)遠(yuǎn)快于XML。