(面試題從網上收集)javascript
一、什麼是AJAX,它的特色是什麼,爲何要使用Ajax(請談一下你對Ajax的認識)css
AJAX的全稱是Asynchronous JavaScript And XML.java
Ajax能夠實現動態不刷新(局部刷新) 就是能在不更新整個頁面的前提下維護數據。這使得Web應用程序更爲迅捷地迴應用戶動做,並避免了在網絡上發送那些沒有改變過的信息。web
AJAX是2005年由Google發起並流行起來的編程方法, AJAX不是一個新的編程語言,可是它是一個使用已有標準的新的編程技術。
使用AJAX能夠建立更好,更快,更用戶界面友好的Web應用。
AJAX技術基於Javascript和HTTP Request.面試
二、什麼樣的狀況會形成跨域,跨域解決方案有哪些?ajax
同源策略限制 不一樣源會形成跨域。子域名不一樣,主域名不一樣,端口號不一樣,ip地址和網址不一樣都會形成跨域。編程
解決方案有三種:json
一、代理服務器小程序
二、設置請求頭:Access-Control-Allow-Origin: * //容許全部域名訪問跨域
Access-Control-Allow-Origin: http://a.com //只容許全部域名訪問
三、jsonp(只能解決get跨域)
原理:動態建立一個script標籤。利用script標籤的src屬性不受同源策略限制。由於全部的src屬性和href屬性都不受同源策略限制。能夠請求第三方服務器數據內容。
步驟:
三、http常見狀態碼有哪些?
狀態碼:
0: 請求未初始化
1: 服務器鏈接已創建
2: 請求已接收
3: 請求處理
4: 請求已完成,且響應已就緒
http狀態響應碼:
1xx 信息類
100 (繼續)請求者應當繼續提出請求。服務器返回此代碼表示已收到請求的第一部分,正在等待其他部分
2xx 成功
200 (成功) 服務器已成功處理了請求。一般,這表示服務器提供了請求的網頁。
3xx 重定向
304 (未修改)自從上次請求後,請求的網頁未修改過。服務器返回此響應時,不會返回網頁內容。
4xx 客戶端錯誤
404 (未找到)服務器找不到請求的網頁。
5xx 服務端錯誤
503 (服務不可用)服務器目前沒法使用(因爲超載或停機維護)。一般,這只是暫時狀態。
四、簡述原生js ajax請求的幾個步驟?
//建立 XMLHttpRequest 對象 var ajax = new XMLHttpRequest(); //規定請求的類型、URL 以及是否異步處理請求。 ajax.open('GET',url,true); //發送信息至服務器時內容編碼類型 ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //發送請求 ajax.send(null); //接受服務器響應數據 ajax.onreadystatechange = function () { if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { } };
五、介紹ajax中get和post的請求方式及他們的優缺點?
代碼上的區別
1:get經過url傳遞參數
2:post設置請求頭 規定請求數據類型
使用上的區別
1:post比get安全 (由於post參數在請求體中。get參數在url上面)
2:get傳輸速度比post快 根據傳參決定的。 (post經過請求體傳參,後臺經過數據流接收。速度稍微慢一些。而get經過url傳參能夠直接獲取)
3:post傳輸文件大理論沒有限制 get傳輸文件小大概7-8k ie4k左右
4:get獲取數據 post上傳數據 (上傳的數據比較多 並且上傳數據都是重要數據。因此不論在安全性仍是數據量級 post是最好的選擇)
六、Ajax和javascript的區別。
javascript是一種在瀏覽器端執行的腳本語言,Ajax是一種建立交互式網頁應用的開發技術 ,它是利用了一系列相關的技術其中就包括javascript。
Javascript是由網景公司開發的一種腳本語言,它和sun公司的java語言是沒有任何關係的,它們類似的名稱只是一種行銷策略。
在通常的web開發中,javascript是在瀏覽器端執行的,咱們能夠用javascript控制瀏覽器的行爲和內容。
在 Ajax應用中信息是如何在瀏覽器和服務器之間傳遞的,經過XML數據或者字符串
七、Ajax都有哪些優勢和缺點?
優勢:
一、最大的一點是頁面無刷新,用戶的體驗很是好。
二、使用異步方式與服務器通訊,具備更加迅速的響應能力。
三、能夠把之前一些服務器負擔的工做轉嫁到客戶端,利用客戶端閒置的能力來處理,減輕服務器和帶寬的負擔,節約空間和寬帶租用成本。而且減輕服務器的負擔,ajax的原則是「按需取數據」,能夠最大程度的減小冗餘請求,和響應對服務器形成的負擔。
四、基於標準化的並被普遍支持的技術,不須要下載插件或者小程序。
缺點:
一、ajax不支持瀏覽器back按鈕。
二、安全問題 AJAX暴露了與服務器交互的細節。
三、對搜索引擎的支持比較弱。
四、破壞了程序的異常機制。
五、不容易調試。
8、json字符串轉換集json對象、json對象轉換json字符串
//字符串轉對象 JSON.parse(json) eval('(' + jsonstr + ')') // 對象轉字符串 JSON.stringify(json)
九、Ajax主要包含了哪些技術?
Ajax(Asynchronous JavaScript + XML)的定義
基於web標準(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)進行動態顯示及交互;
使用 XML 和 XSLT 進行數據交換及相關操做;
使用XMLHttpRequest 進行異步數據查詢、檢索;
使用 JavaScript 將全部的東西綁定在一塊兒。英文參見Ajax的提出者Jesse James Garrett的原文,原文題目(Ajax: A New Approach to Web Applications)。
相似於DHTML或LAMP,AJAX不是指一種單一的技術,而是有機地利用了一系列相關的技術。事實上,一些基於AJAX的「派生/合成」式(derivative/composite)的技術正在出現,如「AFLAX」。
AJAX的應用使用支持以上技術的web瀏覽器做爲運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。可是Opera不支持XSL格式對象,也不支持XSLT。
十、AJAX技術體系的組成部分有哪些。
HTML,css,dom,xml,xmlHttpRequest,javascript
十一、請解釋一下 JavaScript 的同源策略。
同源策略是客戶端腳本(尤爲是Javascript)的重要的安全度量標準。它最先出自Netscape Navigator2.0,其目的是防止某個文檔或腳本從多個不一樣源裝載。所謂同源指的是:協議,域名,端口相同,同源策略是一種安全協議,
指一段腳本只能讀取來自同一來源的窗口和文檔的屬性。
十二、AJAX請求總共有多少種CALLBACK
Ajax請求總共有八種Callback
onSuccess
onFailure
onUninitialized
onLoading
onLoaded
onInteractive
onComplete
onException
1三、介紹一下XMLHttpRequest對象的經常使用方法和屬性。
open(「method」,」URL」) 創建對服務器的調用,第一個參數是HTTP請求 方式能夠爲GET,POST或任何服務器所支持的您想調用的方式。
第二個參數是請求頁面的URL。
send()方法,發送具體請求
abort()方法,中止當前請求
readyState屬性 請求的狀態 有5個可取值0=未初始化 ,1=正在加載
2=以加載,3=交互中,4=完成
responseText 屬性 服務器的響應,表示爲一個串
reponseXML 屬性 服務器的響應,表示爲XML
status 服務器的HTTP狀態碼,200對應ok 400對應not found
1四、解釋jsonp的原理,以及爲何不是真正的ajax
Jsonp並非一種數據格式9,而json是一種數據格式,jsonp是用來解決跨域獲取數據的一種解決方案,具體是經過動態建立script標籤,而後經過標籤的src屬性獲取js文件中的js腳本,該腳本的內容是一個函數調用,
參數就是服務器返回的數據,爲了處理這些返回的數據,須要事先在頁面定義好回調函數,本質上使用的並非ajax技術
1五、一個頁面從輸入 URL 到頁面加載顯示完成,這個過程當中都發生了什麼?
分爲4個步驟:
1. 當發送一個 URL 請求時,無論這個 URL 是 Web 頁面的 URL 仍是 Web 頁面上每一個資源的 URL,瀏覽器都會開啓一個線程來處理這個請求,同時在遠程 DNS 服務器上啓動一個 DNS 查詢。這能使瀏覽器得到請求對應的 IP 地址。
2. 瀏覽器與遠程 Web 服務器經過 TCP 三次握手協商來創建一個 TCP/IP 鏈接。該握手包括一個同步報文,一個同步-應答報文和一個應答報文,這三個報文在 瀏覽器和服務器之間傳遞。該握手首先由客戶端嘗試創建起通訊,然後服
務器應答並接受客戶端的請求,最後由客戶端發出該請求已經被接受的報文。
3. 一旦 TCP/IP 鏈接創建,瀏覽器會經過該鏈接向遠程服務器發送 HTTP 的 GET 請求。遠程服務器找到資源並使用 HTTP 響應返回該資源,值爲 200 的 HTTP 響應狀態表示一個正確的響應。
4. 此時,Web 服務器提供資源服務,客戶端開始下載資源。
1六、介紹一下Prototype的$()函數,$F()函數,$A()函數都是什麼做用
同步:瀏覽器向服務器請求數據,服務器比較忙,瀏覽器一直等着(頁面白屏),直到服務器返回數據,瀏覽器才能顯示頁面。
異步:瀏覽器向服務器請求數據,服務器比較忙,瀏覽器能夠自如的幹原來的事情(顯示頁面),服務器返回數據的時候通知瀏覽器一聲,瀏覽器把返回的數據再渲染到頁面,局部更新。