本篇文章主要的講述了關於ajax的面試題問題和答案,大家可以多看看,看看那些面試的那些人是如何出題的,還有看看正確答案到底是什麼。現在就讓我們來看這篇文章吧
1.工作當中會和後台互動嗎? 那你能說說封裝好的 ajax裡的幾個參數嗎 ?
url: 發送請求的地址。
type: 請求方式(post或get)預設為get。
async: 同步非同步請求,預設true所有請求均為非同步請求。
timeout : 逾時時間設定,單位毫秒
data:要求為Object或String類型的參數,發送到伺服器的資料
cache:預設為true(當dataType為script時,預設為false), 設定為false將不會從瀏覽器緩衝中載入請求資訊。
dataType: 預期伺服器返回的資料類型。
可用的類型如下:
xml:返回XML文檔,可用JQuery處理。
html:返回純文字HTML資訊;包含的script標籤會在插入DOM時執行。
script:返回純文字JavaScript代碼。不會自動緩衝結果。
json:返回JSON資料。
jsonp:JSONP格式。使用JSONP形式調用函數時,例如myurl?callback=?,JQuery將自動替換後一個“?”為正確的函數名,以執行回呼函數。
text:返回純文字字串。
success:請求成功後調用的回呼函數,有兩個參數。
(1) 由伺服器返回,並根據dataType參數進行處理後的資料。
(2) 描述狀態的字串。
error:要求為Function類型的參數,請求失敗時被調用的函數。該函數有3個參數
(1) XMLHttpRequest對象
(2) 錯誤資訊
(3) 捕獲的錯誤對象(可選)
complete :function(XMLHttpRequest,status){ //請求完成後最終執行參數
2.json資料 如果怎麼處理 他的格式 你以前工作中有沒有固定格式 如果我發送一個請求 刪除資料裡的一條資料 我怎麼知道刪除成功了 或者說 刪除後 會在哪裡顯示
JSON.parse() 轉換為JSON對象,根據資料進行解析,放到頁面中。
格式:{} 與 [] 結合拼接的JSON串
發送請求刪除資料,後台會返回處理的結果,前台根據返回的結果判斷是否成功,然後處理頁面元素。
3.有沒有遇到過這種情況 在ie瀏覽器中 後台圖片資料已經改變 但是用戶端沒有發生改變 該怎麼處理? 他提示說瀏覽器的緩衝
JQuery.ajax() 方法,設定cache為false,就不會從瀏覽器緩衝中載入請求,
或者利用post方法,請求資料,不會緩衝,每次都是重新請求資料
4.選項卡的實現思路
滑鼠懸浮時間,調用方法,傳入this,對所有的選項卡內容部分隱藏操作,對this的進行顯示操作,控制display
5.級聯 的實現思路
一般地區資料都是利用二維數組儲存,從後台擷取到以後儲存起來,
根據第一個下拉框的選項,找到對應的二維數組資料,迴圈new Option() add進下拉框
6. 輪播圖的實現思路
第一種:
把圖片名稱按順序取好名字,利用定時器,每隔多少秒,更換圖片的路徑
第二種:
利用無縫滾動的技術,把圖片都放入頁面中,定時器進行scroll滾動,判斷滾動距離取餘(%) 圖片寬度等於0,暫停定時器,多少秒後再開啟定時器。
7.說說你理解中的bootstrap
Bootstrap是基於HTML5和CSS3開發的,它在jQuery的基礎上進行了更為個人化和人性化的完善,只需要給標籤起上響應的Class名稱,就可以形成一套Bootstrap自己專屬的網站風格,併兼容大部分jQuery外掛程式。
8.angularjs和JQ的區別
JQ 先擷取再使用。
Angularjs 直接使用
9.JQmobile和JQ的區別
jQuery Mobile 是建立移動 web 應用程式的架構。jQuery Mobile 適用於所有流行的智能手機和平板電腦。jQuery Mobile 使用 HTML5 和 CSS3 通過儘可能少的指令碼對頁面進行布局
(1) jQuery是一個js庫,主要提供的功能是選取器,屬性修改和事件綁定等等。
(2) jQuery UI則是在jQuery的基礎上,利用jQuery的擴充性,設計的外掛程式。提供了一些常用的介面元素,諸如對話方塊、拖動行為、改變大小行為等等。
(3) jQuery本身注重於後台,沒有漂亮的介面,而jQuery UI則補充了前者的不足,他提供了華麗的展示介面,使人更容易接受。既有強大的後台,又有華麗的前台。jQuery UI是jQuery外掛程式,只不過專指由jQuery官方維護的UI方向的外掛程式。
10.ajax的四部:
var xmlhttp = new XMLHttpRequest();xmlhttp.open("post||get","URL",true||false);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.onreadystatechange = callBack;xmlhttp.send(null);
11.ajax接受到的資料類型是什嗎?
String
JSON串
JSON對象
12.哪些地方需要ajax,哪些地方不需要,ajax的優點是什麼,缺點是什嗎?
頁面不進行跳轉重新整理的時候,非同步處理資料的時候,表單自動補全功能----使用Ajax,
提交後不再使用原頁面,可以進行跳轉重新整理的,查詢之類的功能,可以不用Ajax
優點:
<1>.無重新整理更新資料。
AJAX最大優點就是能在不重新整理整個頁面的前提下與伺服器通訊維護資料。這使得Web應用程式更為迅捷地響應使用者互動,並避免了在網路上發送那些沒有改變的資訊,減少使用者等待時間,帶來非常好的使用者體驗。
<2>.非同步與伺服器通訊。
AJAX使用非同步方式與伺服器通訊,不需要打斷使用者的操作,具有更加迅速的響應能力。最佳化了Browser和Server之間的溝通,減少不必要的資料轉送、時間及降低網路上資料流量。
<3>.前端和後端Server Load Balancer。
AJAX可以把以前一些伺服器負擔的工作轉嫁到用戶端,利用用戶端閑置的能力來處理,減輕伺服器和頻寬的負擔,節約空間和寬頻租用成本。並且減輕伺服器的負擔,AJAX的原則是“按需取資料”,可以最大程度的減少冗餘請求和響應對伺服器造成的負擔,提升網站效能。
<4>.基於標準被廣泛支援。
AJAX基於標準化的並被廣泛支援的技術,不需要下載瀏覽器外掛程式或者小程式,但需要客戶允許JavaScript在瀏覽器上執行。隨著Ajax的成熟,一些簡化Ajax使用方法的程式庫也相繼問世。同樣,也出現了另一種輔助程式設計的技術,為那些不支援JavaScript的使用者提供替代功能。
<5>.介面與應用分離。
Ajax使WEB中的介面與應用分離(也可以說是資料與呈現分離),有利於分工合作、減少非技術人員對頁面的修改造成的WEB應用程式錯誤、提高效率、也更加適用於現在的發布系統。
缺點:
<1>.AJAX幹掉了Back和History功能,即對瀏覽器機制的破壞。
在動態更新頁面的情況下,使用者無法回到前一個頁面狀態,因為瀏覽器僅能記憶記錄中的靜態頁面。一個被完整讀入的頁面與一個已經被動態修改過的頁面之間的差別非常微妙;使用者通常會希望單擊後退按鈕能夠取消他們的前一次操作,但是在Ajax應用程式中,這將無法實現。
後退按鈕是一個標準的web網站的重要功能,但是它沒法和js進行很好的合作。這是Ajax所帶來的一個比較嚴重的問題,因為使用者往往是希望能夠通過後退來取消前一次操作的。那麼對於這個問題有沒有辦法?答案是肯定的,用過Gmail的知道,Gmail下面採用的Ajax技術解決了這個問題,在Gmail下面是可以後退的,但是,它也並不能改變Ajax的機制,它只是採用的一個比較笨但是有效辦法,即使用者單擊後退按鈕訪問記錄時,通過建立或使用一個隱藏的IFRAME來重現頁面上的變更。(例如,當使用者在Google Maps中單擊後退時,它在一個隱藏的IFRAME中進行搜尋,然後將搜尋結果反映到Ajax元素上,以便將應用程式狀態恢複到當時的狀態。)
但是,雖然說這個問題是可以解決的,但是它所帶來的開發成本是非常高的,並與Ajax架構所要求的快速開發是相背離的。這是Ajax所帶來的一個非常嚴重的問題。
一個相關的觀點認為,使用動態網頁面更新使得使用者難於將某個特定的狀態儲存到收藏夾中。該問題的解決方案也已出現,大部分都使用URL片斷標識符(通常被稱為錨點,即URL中#後面的部分)來保持跟蹤,允許使用者回到指定的某個應用程式狀態。(許多瀏覽器允許JavaScript動態更新錨點,這使得Ajax應用程式能夠在更新顯示內容的同時更新錨點。)這些解決方案也同時解決了許多關於不支援後退按鈕的爭論。(想看更多就到topic.alibabacloud.comAJAX開發手冊欄目中學習)
<2>.AJAX的安全問題。
AJAX技術給使用者帶來很好的使用者體驗的同時也對IT企業帶來了新的安全威脅,Ajax技術就如同對企業資料建立了一個直接通道。這使得開發人員在不經意間會暴露比以前更多的資料和伺服器邏輯。Ajax的邏輯可以對用戶端的安全掃描技術隱藏起來,允許駭客從遠端伺服器上建立新的攻擊。還有Ajax也難以避免一些已知的安全弱點,諸如跨網站腳步攻擊、SQL注入攻擊和基於Credentials的安全性漏洞等等。
<3>.對搜尋引擎支援較弱。
對搜尋引擎的支援比較弱。如果使用不當,AJAX會增大網路資料的流量,從而降低整個系統的效能。
<4>.破壞程式的異常處理機制。
至少從目前看來,像Ajax.dll,Ajaxpro.dll這些Ajax架構是會破壞程式的異常機制的。關於這個問題,曾在開發過程中遇到過,但是查了一下網上幾乎沒有相關的介紹。後來做了一次實驗,分別採用Ajax和傳統的form提交的模式來刪除一條資料……給我們的調試帶來了很大的困難。
<5>.違背URL和資源定位的初衷。
例如,我給你一個URL地址,如果採用了Ajax技術,也許你在該URL地址下面看到的和我在這個URL地址下看到的內容是不同的。這個和資源定位的初衷是相背離的。
<6>.AJAX不能很好支援行動裝置。
一些手持功能(如手機、PDA等)現在還不能很好的支援Ajax,比如說我們在手機的瀏覽器上開啟採用Ajax技術的網站時,它目前是不支援的。
<7>.用戶端過肥,太多用戶端代碼造成開發上的成本。
編寫複雜、容易出錯;冗餘代碼比較多(層層包含js檔案是AJAX的通病,再加上以往的很多服務端代碼現在放到了用戶端);破壞了Web的原有標準。
本篇文章到這就結束了(想看更多就到topic.alibabacloud.comAJAX使用手冊欄目中學習),有問題的可以在下方留言提問。