首頁  >  文章  >  web前端  >  AJAX常見面試問題你會多少? ajax的12個常見面試題及其答案

AJAX常見面試問題你會多少? ajax的12個常見面試題及其答案

寻∝梦
寻∝梦原創
2018-09-10 11:57:435307瀏覽

    這篇文章主要的講述了關於ajax的面試題問題和答案,大家可以多看看,看看那些面試的那些人是如何出題的,還有看看正確答案到底是什麼。現在就讓我們來看看這篇文章吧

【相關專題推薦:ajax面試題(2020)】

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>.前端與後端負載平衡。
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應用程式能夠在更新顯示內容的同時更新錨點。)這些解決方案也同時解決了許多關於不支援後退按鈕的爭論。 (想看更多就到PHP中文網AJAX開發手冊欄位學習)

<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的原有標準。

  這篇文章到這就結束了(想看更多就到PHP中文網AJAX使用手冊欄位中學習),有問題的可以在下方留言提問。

以上是AJAX常見面試問題你會多少? ajax的12個常見面試題及其答案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn