1、position的值, relative和absolute分別是相對于誰進行定位的?
absolute :生成絕對定位的元素, 相對于最近一級的 定位不是 static 的父元素來進行定位。
fixed (老IE不支持)生成絕對定位的元素,通常相對于瀏覽器窗口或 frame 進行定位。
relative 生成相對定位的元素,相對于其在普通流中的位置進行定位。
static 默認值。沒有定位,元素出現在正常的流中。
sticky 生成粘性定位的元素,容器的位置根據正常文檔流計算得出。
2、如何解決跨域問題
JSONP:
原理是:動態插入 script 標簽,通過 script 標簽引入一個js文件,這個js文件載入成功后會執行我們在url參數中指定的函數,并且會把我們需要的 json 數據作為參數傳入。
由于同源策略的限制, XmlHttpRequest 只允許請求當前源(域名、協議、端口)的資源,為了實現跨域請求,可以通過 script 標簽實現跨域請求,然后在服務端輸出JSON數據并執行回調函數,從而解決了跨域的數據請求。
優點是兼容性好,簡單易用,支持瀏覽器與服務器雙向通信。缺點是只支持GET請求。
JSONP : json+padding (內填充),顧名思義,就是把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
服務器端對于 CORS 的支持,主要就是通過設置 Access-Control-Allow-Origin 來進行的。如果瀏覽器檢測到相應的設置,就可以允許 Ajax 進行跨域的訪問。
通過修改document.domain來跨子域
將子域和主域的 document.domain 設為同一個主域.前提條件:這兩個域名必須屬于同一個基礎域名!而且所用的協議,端口都要一致,否則無法利用 document.domain 進行跨域
主域相同的使用 document.domain
使用window.name來進行跨域
window 對象有個 name 屬性,該屬性有個特征:即在一個窗口(window)的生命周期內,窗口載入的所有的頁面都是共享一個 window.name 的,每個頁面對 window.name 都有讀寫的權限, window.name 是持久存在一個窗口載入過的所有頁面中的
使用HTML5中新引進的 window.postMessage 方法來跨域傳送數據
還有flash、在服務器上設置代理頁面等跨域方式..
XML 和 JSON 的區別?
(1).數據體積方面。
JSON相對于XML來講,數據的體積小,傳遞的速度更快些。
(2).數據交互方面。
JSON與JavaScript的交互更加方便,更容易解析處理,更好的數據交互。
(3).數據描述方面。
JSON對數據的描述性比XML較差。
(4).傳輸速度方面。
JSON的速度要遠遠快于XML。