ajax带来的主要问题有哪些,ajax面试题
1、ajax是什么?如何創(chuàng)建一個ajax?
ajax并不算是一種新的技術,全稱是asynchronous javasript and xml,可以說是已有技術的組合,主要用來實現(xiàn)客戶端服務器的異步通信效果,實現(xiàn)頁面的局部刷新,早期的瀏覽器并不能原生支持ajax,可以使用隱藏幀(iframe)方式變相實現(xiàn)異步效果,后來的瀏覽器提供了對ajax的原生支持。
使用ajax原生方式發(fā)送請求主要通過XMLHttpRequest(標準瀏覽器)、ActiveXObject(IE瀏覽器)對象實現(xiàn)異步通信效果。
//ajax編寫步驟//1、創(chuàng)建XMLHttpRequest對象
var xhr = newXMLHttpRequest();//2、設置請求參數(shù)
xhr.open(請求方式,請求地址,異步或同步);//3、設置回調函數(shù)
request.onreadystatechange = function(){if(xhr.reasyState===4){if(xhr.status === 200) {//5、接受響應
console.log(xhr.responseText);
}
}
}//4、發(fā)送請求
xhr.send();
2、同步和異步的區(qū)別?
同步:瀏覽器向服務器請求數(shù)據(jù),服務器比較忙,瀏覽器一直等著(頁面白屏),直到服務器返回數(shù)據(jù),瀏覽器才能顯示頁面。
異步:瀏覽器向服務器請求數(shù)據(jù),服務器比較忙,瀏覽器可以自如的干原來的事情(顯示頁面),服務器返回數(shù)據(jù)的時候通知瀏覽器一聲,瀏覽器把返回的數(shù)據(jù)再渲染到頁面,局部更新。
3、如何解決跨域問題?
理解跨域的概念:協(xié)議、域名、端口都相同才同域,否則都是跨域。
出于安全考慮,服務器不允許ajax跨域獲取數(shù)據(jù),但是可以跨域獲取文件內容,所以基于這一點,可以動態(tài)創(chuàng)建script標簽,使用標簽的src屬性訪問js文件的形式獲取js腳本,并且這個js腳本中的內容是函數(shù)調用,該函數(shù)調用的參數(shù)是服務器返回的數(shù)據(jù),為了獲取這里的參數(shù)數(shù)據(jù),需要事先在頁面中定義回調函數(shù),在回調函數(shù)中處理服務器返回的數(shù)據(jù),這就是解決跨域問題的主流解決方案。
4、請解釋一下javaScript的同源策略
同源策略是客戶端腳本的重要安全度量標準,所謂同源指的是:協(xié)議,域名,端口相同,同源策略是一種安全協(xié)議,指一段腳本只能讀取來自同一來源的窗口和文檔的屬性。
5、GET和POST的區(qū)別,何時使用POST?
GET:一般用于信息獲取,使用URL傳遞參數(shù),對所發(fā)送信息的數(shù)量也有限制,一般在2000個字符,有的瀏覽器是8000個字符。
POST:一般用于修改服務器上的資源,對所發(fā)送的信息沒有限制。
以下情況中,請使用POST請求:
①、無法使用緩存文件(更新服務器上的文件或數(shù)據(jù)庫)
②、向服務器發(fā)送大量數(shù)據(jù)(POST沒有數(shù)據(jù)量限制)
③、發(fā)送包含未知字符的用戶輸入時,POST比GET更穩(wěn)定也更可靠。
6、ajax的最大特點是什么?
ajax可以實現(xiàn)異步通信效果,實現(xiàn)頁面局部刷新,帶來更好的用戶體驗;按需要獲取數(shù)據(jù),節(jié)約帶寬資源。
7、ajax的缺點?
①、ajax不支持瀏覽器back按鈕。
②、安全問題ajax暴露了與服務器交互的細節(jié)。
③、對搜索引擎的支持比較弱。
④、破壞了程序的異常機制。
8、解釋jsonp的原理,以及為什么不是真正的ajax?
jsonp并不是一種數(shù)據(jù)格式,而是json是一種數(shù)據(jù)格式,jsonp是用來解決跨域獲取數(shù)據(jù)的一種解決方案,具體是通過動態(tài)創(chuàng)建script標簽,然后通過標簽src屬性獲取js文件中的js腳本,該腳本的內容是一個函數(shù)調用,參數(shù)就是服務器返回的數(shù)據(jù),為了處理這些返回的數(shù)據(jù),需要事先在頁面定義好回調函數(shù),本質上使用的并不是ajax技術。
9、HTTP狀態(tài)碼都有哪些?
200 OK 客戶端請求成功
301 資源(網頁等)被永久轉移到其他URL
400 Bad Request 客戶端請求有語法錯誤,不能被服務器所理解
403 Forbidden 服務器收到請求,但是拒絕提供服務
404 Not Found 請求資源部存在,輸入了錯誤的URL
500 Internal Server Error 服務器發(fā)生不可預期的錯誤
503 Server Unavailable 服務器當前不能處理客戶端的請求,一段時間后可能恢復正常。
10、為什么利用多個域名來存儲網站資源會更有效?
確保用戶在不同地區(qū)能用最快的速度打開網站,其中某個域名崩潰用戶也能通過其他域名訪問網站,并且不同的資源放到不同的服務器上有利于減輕單臺服務器的壓力。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的ajax带来的主要问题有哪些,ajax面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css3蒙版运动,纯CSS3制作逼真的汽
- 下一篇: led显示屏服务器怎么设置,led显示屏