ajax是什么? ajax的交互模型? 同步和異步的區別? 如何解決跨域問題?
Ajax是多種技術組合起來的一種瀏覽器和服務器交互技術,基本思想是允許一個互聯網瀏覽器向一個遠程頁面/服務做異步的http調用,並且用收到的數據來更新一個當前web頁面而不必刷新整個頁面。該技術能夠改進客戶端的體驗。包含的技術:
XHTML:對應W3C的XHTML規范,目前是XHTML1.0。
CSS:對應W3C的CSS規范,目前是CSS2.0
DOM:這里的DOM主要是指HTML DOM,XML DOM包括在下面的XML中
JavaScript:對應於ECMA的ECMAScript規范
XML:對應W3C的XML DOM、XSLT、XPath等等規范
XMLHttpRequest:對應WhatWG的Web Applications1.0規范(http://whatwg.org/specs/web-apps/current-work/)
AJAX交互模型
同步:腳本會停留並等待服務器發送回復然后再繼續
異步:腳本允許頁面繼續其進程並處理可能的回復
跨域問題簡單的理解就是因為JS同源策略的限制,a.com域名下的JS無法操作b.com或c.a.com下的對象,具體場景如下:
PS:(1)如果是端口或者協議造成的跨域問題前端是無能為力的
(2) 在跨域問題上,域僅僅通過URL的首部來識別而不會嘗試判斷相同的IP地址對應的域或者兩個域是否對應一個IP
前端對於跨域的解決辦法:
(1) document.domain+iframe
(2) 動態創建script標簽