更新時間:2023-02-03 15:56:04 來源:動力節點 瀏覽1272次
就目前來說,互聯網技術已經越來越成熟了,很多企業在提問面試者的時候,除了要考察他們技術的掌握情況,還會注重對理論知識的理解等等,也就是說,全方面的都會考到你,針對程序員們,小編準備了一些ajax面試題及答案,希望可以幫助到你們:
1、什么是Ajax和JSON,它們的優缺點
Ajax是全稱是asynchronous JavaScript andXML,即異步JavaScript和xml,用于在Web頁面中實現異步數據交互,實現頁面局部刷新
優點:可以實現異步通信效果,頁面局部刷新,帶來更好的用戶體驗
JSON是一種輕量級的數據交換格式,看著像對象,本質是字符串
優點:輕量級、易于人的閱讀和編寫,便于js解析,支持復合數據類型
2、ajax的交互流程有哪幾步?
1)創建ajax對象
xhr = new XMLHttpRequest
2)規定請求地址
xhr.open(method,url,async)
3)等待服務器相應
xhr.onload
4)向服務器發送請求
xhr.send()
3、AJAX應用和傳統Web應用有什么不同
在傳統的Js中,如果想發送客戶端信息到服務器,需要建立一個HTML表單然后GET或者POST數據到服務器端
用戶需要點擊提交按鈕來發送數據信息,然后等待服務器響應請求,頁面重新加載
使用AJAX技術,就可以使Javascript通過XMLHttpRequest對象直接與服務器進行交互
4、XMLHttpRequest對象在IE和Firefox中創建方式有沒有不同?
IE中通過new ActiveXObject()得到,Firefox中通過newXMLHttpRequest()得到
使用jquery封裝好的ajax,會避免這些問題
擴展:
IE內核為:trident;
Chrome內核為:blink(基于webkit,谷歌與Opera software共同開發);
Firefox內核為:gecko;
Safari內核為:webkit內核;
Opera內核為:blink (跟Chrome一樣),之前為presto;
5、ajax如何解決瀏覽器緩存問題,有幾種解決方案?
方案1)在ajax發送請求前加上 anyAjaxObj.setRequestHeader(“If-Modified-Since”,“0”)
方案2)在ajax發送請求前加上 anyAjaxObj.setRequestHeader(“Cache-Control”,“no-cache”)
方案3)在URL后面加上一個隨機數: “fresh=” + Math.random();
方案4)在URL后面加上時間戳:“nowtime=” + new Date().getTime()
方案5)在jq ajax下,使用 $.ajaxSetup({cache:false}) 這樣就不會保存緩存記錄
6、簡述ajax的優缺點
優點:
1)無刷新更新數據(在不刷新整個頁面的情況下維持與服務器通信)
2)異步與服務器通信(使用異步的方式與服務器通信,不打斷用戶的操作)
3)前端和后端負載均衡(將一些后端的工作交給前端,減少服務器與寬度的負擔)
4)界面和應用相分離(ajax將界面和應用分離也就是數據與呈現相分離)
缺點:
1)ajax不支持瀏覽器back按鈕
2)安全問題 Aajax暴露了與服務器交互的細節
3)對搜索引擎的支持比較弱
4)破壞了Back與History后退按鈕的正常行為等瀏覽器機制
7、闡述一下異步加載JS的幾種方案(異步加載:瀏覽器在下載執行js的同時,還會繼續進行后續頁面的處理)
方案1)異步加載的方案: 動態插入 script 標簽
方案2)通過 ajax 去獲取 js 代碼,然后通過 eval 執行
方案3)script 標簽上添加 defer 或者 async 屬性
方案4)創建并插入 iframe,讓它異步執行 js
8、json字符串與對象如何相互轉換
把JSON格式轉成對象:JSON.parse()
把對象轉成標準json:JSON.stringify()
使用eval能夠把字符串盡量轉成js運行的代碼 eval(’(’ + jsonstr + ‘)’)
eval是不安全的(可能會注入不必要的東西),通過new Function(’’,‘return’+json)();可以解決該問題
9、介紹一下XMLHttpRequest對象,他有哪些常用方法和屬性
XMLHttpRequest是ajax的核心,通過XMLHttpRequest對象,Web開發人員可以在頁面加載以后進行頁面的局部更新
常用的方法:
open(get/post,url,是否異步)創建http請求
send()發送請求給服務器
setRequestHeader()設置頭信息(使用post才會用到,get并不需要調用該方法)
常用的屬性:
onreadystatechange 用于監聽ajax的工作狀態(readyState變化時會調用此方法)
readyState 用來存放XMLHttpRequest的狀態
status 服務器返回的狀態碼
responseText 服務器返回的文本內容
10、說下readyState屬性是干嘛的,都有哪幾個狀態
readyState屬性用來存放XMLHttpRequest的狀態,監聽從0-4發生不同的變化
0:請求未初始化(此時還沒有調用open)
1:服務器連接已建立,已經發送請求開始監聽
2:請求已接收,已經收到服務器返回的內容
3:請求處理中,解析服務器響應內容
4:請求已完成,且響應就緒
以上就是“絕對經典的ajax面試題及答案”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習