面試寶典2

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。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容