AJAX是「Asynchronous JavaScript and XML」的縮寫。他是指一種建立交互式網頁應用的網頁開發技術。、javascript
客戶端與服務器,能夠在【沒必要刷新整個瀏覽器】的狀況下,與服務器進行異步通信的技術html
AJAX應用和傳統Web應用有什麼不一樣?前端
請介紹一下XMLhttprequest對象java
Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持異步請求的技術。簡而言之,XmlHttpRequest使您可使用JavaScript向服務器提出請求並處理響應,而不阻塞用戶。經過XMLHttpRequest對象,Web開發人員能夠在頁面加載之後進行頁面的局部更新jquery
經常使用的方法就是黑色粗體的前三個web
上面有兩個地方都說起了回調函數,回調函數是什麼??面試
回調函數就是接收服務器返回的內容!ajax
Ajax的實現流程是怎樣的?小程序
<script type="text/javascript">
var httpRequest;
function checkUsername() {
if(window.XMLHttpRequest) {
//在IE6以上的版本以及其餘內核的瀏覽器(Mozilla)等
httpRequest = new XMLHttpRequest();
}else if(window.ActiveXObject) {
//在IE6如下的版本
httpRequest = new ActiveXObject();
}
//建立http請求
httpRequest.open("POST", "Servlet1", true);
//由於我使用的是post方式,因此須要設置消息頭
httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//指定回調函數
httpRequest.onreadystatechange = response22;
//獲得文本框的數據
var name = document.getElementById("username").value;
//發送http請求,把要檢測的用戶名傳遞進去
httpRequest.send("username=" + name);
}
function response22() {
//判斷請求狀態碼是不是4【數據接收完成】
if(httpRequest.readyState==4) {
//再判斷狀態碼是否爲200【200是成功的】
if(httpRequest.status==200) {
//獲得服務端返回的文本數據
var text = httpRequest.responseText;
//把服務端返回的數據寫在div上
var div = document.getElementById("result");
div.innerText = text;
}
}
}
</script>
複製代碼
AJAX請求總共有多少種CALLBACKsegmentfault
Ajax請求總共有八種Callback
有,IE中經過new ActiveXObject()獲得,Firefox中經過newXMLHttpRequest()獲得
AJAX有哪些有點和缺點?
優勢:
缺點:
請解釋一下 JavaScript 的同源策略。
同源策略是客戶端腳本(尤爲是Javascript)的重要的安全度量標準。它最先出自Netscape Navigator2.0,其目的是防止某個文檔或腳本從多個不一樣源裝載。所謂同源指的是:協議,域名,端口相同,同源策略是一種安全協議,指一段腳本只能讀取來自同一來源的窗口和文檔的屬性。
闡述一下異步加載JS。
參考資料:
如何解決跨域問題?
理解跨域的概念:協議、域名、端口都相同才同域,不然都是跨域
出於安全考慮,服務器不容許ajax跨域獲取數據,可是能夠跨域獲取文件內容。
AJAX跨域的問題可參考:
Ajax 解決瀏覽器緩存問題?
若是文章有錯的地方歡迎指正,你們互相交流。習慣在微信看技術文章的同窗,能夠關注微信公衆號:Java3y