Ⅰ Ajax 工作原理
Ajax的工作原理相當於在用戶和伺服器之間加了—個中間層,使用戶操作與伺服器響應非同步化。這樣把以前的一些伺服器負擔的工作轉嫁到客戶端,利於客戶端閑置的處理能力來處理,減輕伺服器和帶寬的負擔,從而達到節約ISP的空間及帶寬租用成本的目的。
Ajax的核心是javaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支持非同步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向伺服器提出請求並處理響應,而不阻塞用戶。
在創建Web站點時,在客戶端執行屏幕更新為用戶提供了很大的靈活性。下面是使用Ajax可以完成的功能:
動態更新購物車的物品總數,無需用戶單擊Update並等待伺服器重新發送整個頁面。
提升站點的性能,這是通過減少從伺服器下載的數據量而實現的。例如,在某購物車頁面,當更新籃子中的一項物品的數量時,會重新載入整個頁面,這必須下載整個頁面的數據。如果使用Ajax計算新的總量,伺服器只會返回新的總量值,因此所需的帶寬僅為原來的百分之一。 消除了每次用戶輸入時的頁面刷新。例如,在Ajax中,如果用戶在分頁列表上單擊Next,則伺服器數據只刷新列表而不是整個頁面。
直接編輯表格數據,而不是要求用戶導航到新的頁面來編輯數據。對於Ajax,當用戶單擊Edit時,可以將靜態表格刷新為內容可編輯的表格。用戶單擊Done之後,就可以發出一個Ajax請求來更新伺服器,並刷新表格,使其包含靜態、只讀的數據。
一切皆有可能!但願它能夠激發您開始開發自己的基於Ajax的站點。然而,在開始之前,讓我們介紹一個現有的Web站點,它遵循傳統的提交/等待/重新顯示的範例,我們還將討論Ajax如何提升用戶體驗。
Ⅱ Ajax 是什麼 如何創建一個Ajax
Ajax並不算是一種新的技術,全稱是asychronous javascript and
xml,可以說是已有技術的組合,主要用來實現客戶端與伺服器端的非同步通信效果,實現頁面的局部刷新,早期的瀏覽器並不能原生支持ajax,可以使用隱藏幀(iframe)方式變相實現非同步效果,後來的瀏覽器提供了對ajax的原生支持
使用ajax原生方式發送請求主要通過XMLHttpRequest(標准瀏覽器)、ActiveXObject(IE瀏覽器)對象實現非同步通信效果
基本步驟:
var xhr =null;//創建對象 if(window.XMLHttpRequest){ xhr = new XMLHttpRequest();}else{ xhr = new ActiveXObject("Microsoft.XMLHTTP");} xhr.open(「方式」,」地址」,」標志位」);//初始化請求 xhr.setRequestHeader(「」,」」);//設置http頭信息 xhr.onreadystatechange =function(){}//指定回調函數 xhr.send();//發送請求
js框架(jQuery/EXTJS等)提供的ajax API對原生的ajax進行了封裝,熟悉了基礎理論,再學習別的框架就會得心應手,好多都是換湯不換葯的內容 。
by三人行慕課
Ⅲ 請求一個關於AJAX向伺服器發送請求並且接收伺服器返回的數據的問題
第一個問題:先搞清ajax的底層通信形式,ajax發出請求後等待回復,也就是監聽某個信息埠,伺服器接到請求後,發送結果,也就是向某個埠寫信息,所以,不管在形式上編程上有什麼不同,都是向這個ajax所在地的信息埠輸出信息。
第二個問題,response==0是將response轉換為int類型再對比,肯定正確,而response肯定不等於"0",因為out.println("0"),println這個方法就是在輸出的字元串後加一個回車,你可以將response轉換為ascii碼看看是不是這樣。
Ⅳ 怎樣實現用ajax向伺服器發送請求並接收伺服器返回的數據,並在HTML頁面的Table中顯示
比如伺服器上有張表或者listx0dx0aidnamesexx0dx0a1張三男x0dx0a2李四女x0dx0a3王五男x0dx0a你首先在後台代碼中把這個表處理成為JSON格式然後用Response.write的方法輸出來,比如這樣x0dx0a[{id:1,name:'張三',sex:'男'},{id:2,name:'李四',sex:'女'},{id:3,name:'王五',sex:'男'}]x0dx0aJSON是用於在JS中描述實體對象的一種方式,具體關於JSON的知識可以看w3school.com.cn上的相關內容,我這兒就不給你細講了,很簡單,我只說做法:x0dx0a為了方便使用,你需要在你的頁面中引用jQuery庫,我不知道你用什麼語言做的後台程序,原理一樣x0dx0a$.ajax({x0dx0aurl:"這里換成你寫好的用於把表轉換成JSON的後台處理文件地址,比如a.aspx?參數",x0dx0atype:"POST",//這里是AJAX請求的方式x0dx0adataType:"JSON",//如果你回發的內容是JSON格式的就用這個,否則用Text或其他x0dx0adata:{x0dx0a參數1:值,x0dx0a參數2:值,x0dx0a......x0dx0a參數n:值x0dx0a},//要發送的參數,如果無參數可以不寫此項x0dx0asuccess:function(data)x0dx0a{x0dx0a//此處寫入發送成功後要處理的代碼,而參數里的這個data,就是請求成功後返回來的上面那個格式的JSON,你可以用data[i]的值來取其中一行,如取張三的數據就是x0dx0adata[0].name,就取出了張三的name屬性x0dx0a所以你可以在這里用循環去處理data,然後將結果用document.write的方式輸出來就完成了。x0dx0a},x0dx0aerror:function(XMLHttpRequest,Error,F)x0dx0a{x0dx0a//出錯後可以在這里給出提示,Error參數表示錯誤信息x0dx0a}x0dx0a});x0dx0a還有弄不清楚的地方可以繼續和我探討。
Ⅳ 一分鍾學會什麼是Ajax及Ajax請求的五個步驟
AJAX的意思就是非同步的JavaScript和XML。簡而言之,它是使用XMLHttpRequest對象與伺服器端通信的腳本語言。它可以發送及接收各種格式的信息,包括JSON、XML、HTML和文本文件。AJAX最為吸引人的就是它的「非同步」特性,AJAX可以無需刷新頁面而與伺服器端進行通信。
Ajax請求的五個步驟:
1、建立xmlHttpRequest對象
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
if(xmlHttp.overrideMimeType) {
xmlHttp.overrideMimeType("text/xml");
}
} else if(window.ActiveXobject) {
var activeName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for(var i = 0; i < activeName.length; i++) {
try {
xmlHttp = new ActiveXobject(activeName[i]);
break;
} catch(e) {}
}
}
if(!xmlHttp) {
alert("創建xmlhttprequest對象失敗");
} else {}
2、設置回調函數
xmlHttp.onreadystatechange= callback;
function callback(){}
3、使用OPEN方法與伺服器建立連接xmlHttp.open("get","ajax?name="+ name,true)
此步注意設置http的請求方式(post/get),如果是POST方式,注意設置請求頭信息xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
4、向伺服器端發送數據
xmlHttp.send(null);如果是POST方式就不為空
5、在回調函數中針對不同的響應狀態進行處理
if(xmlHttp.readyState == 4){ //判斷交互是否成功
if(xmlHttp.status == 200){ //獲取伺服器返回的數據 //獲取純文本數據
var responseText =xmlHttp.responseText;
document.getElementById("info").innerHTML = responseText;
}
}
(5)Ajax如何實現與伺服器的通信擴展閱讀:
Ajax優缺點
優點:
1、非同步請求,不妨礙用戶瀏覽頁面或者其他操作。
2、局部刷新,無需重新刷新頁面。
3、界面與應用分離。有利於分工合作、減少非技術人員對頁面的修改造成的WEB應用程序錯誤、提高效率、也更加適用於現在的發布系統。
4、基於標准被廣泛支持。
5、前端和後端負載平衡。最大程度的減少冗餘請求和響應對伺服器造成的負擔,提升站點性能。
缺點:
1、back和History,對瀏覽器機制的破壞。
2、安全問題。易受到黑客攻擊。
3、對搜索引擎支持較弱。
4、不能很好支持移動設備。
5、違背URL和資源定位的初衷。
Ⅵ ajax原理是什麼
Ajax的工作原理相當於在用戶和伺服器之間加了—個中間層(AJAX引擎),使用戶操作與伺服器響應非同步化。並不是所有的用戶請求都提交給伺服器。像—些數據驗證和數據處理等都交給Ajax引擎自己來做,,只有確定需要從伺服器讀取新數據時再由Ajax引擎代為向伺服器提交請求。
Ajax是指一種創建互動式、快速動態網頁應用的網頁開發技術,無需重新載入整個網頁的情況下,能夠更新部分網頁的技術。
通過在後台與伺服器進行少量數據交換,Ajax 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。
(6)Ajax如何實現與伺服器的通信擴展閱讀:
Ajax這個術語源自描述從基於 Web 的應用到基於數據的應用。
Ajax 不是一種新的編程語言,而是一種用於創建更好更快以及交互性更強的Web應用程序的技術。
使用 JavaScript 向伺服器提出請求並處理響應而不阻塞用戶核心對象XMLHttpRequest。通過這個對象,您的 JavaScript 可在不重載頁面的情況與 Web 伺服器交換數據,即在不需要刷新頁面的情況下,就可以產生局部刷新的效果。
Ajax 在瀏覽器與 Web 伺服器之間使用非同步數據傳輸(HTTP 請求),這樣就可使網頁從伺服器請求少量的信息,而不是整個頁面。
Ajax可使網際網路應用程序更小、更快,更友好。
Ajax 是一種獨立於 Web 伺服器軟體的瀏覽器技術。Ajax 基於下列 Web 標准:
JavaScript、XML、HTML與 CSS 在 Ajax 中使用的 Web 標准已被良好定義,並被所有的主流瀏覽器支持。Ajax 應用程序獨立於瀏覽器和平台。
Web 應用程序較桌面應用程序有諸多優勢;它們能夠涉及廣大的用戶,它們更易安裝及維護,也更易開發。
不過,網際網路應用程序並不像傳統的桌面應用程序那樣完善且友好。通過 Ajax,網際網路應用程序可以變得更完善,更友好。
Ⅶ ajax技術利用了什麼協議簡述ajax的工作機制
都是用的HTTP協議。簡單來說,它就是調用了一個activeX發送了一個HTTP請求。只不過這個是看不到的。
Ⅷ AJAX的具體工作原理是什麼
Ajax和伺服器端技術毫不相關;DOM模型是Ajax最本質的技術;在使用Ajax控制項前理解它們的實現;學好JavaScript
;Ajax點綴:CSS
。
觀點一:Ajax和伺服器端技術毫不相關
嚴格的說,與傳統web開發相比,Ajax是完完全全的客戶端技術。由於很多控制項封裝了客戶端和伺服器端的通信過程,因此很多問題也因通信而起。事實上,不論何種Ajax技術,伺服器端都是返回的一個純文本流,再由客戶端來處理這個文本。這段文本可以是xml格式,也可以是一個Html片段,也可以是一段JavaScript腳本,或者僅是一個字元串。伺服器端僅僅是作為一個數據介面,客戶端使用XMLHttpRequest對象來請求這個頁面,伺服器端在頁面內寫入結果文本,這個過程和普通的web開發沒有任何區別。所不同的只是,客戶端在非同步獲取結果後,不是直接顯示在頁面,而是由客戶端的Javascript腳本處理後再顯示在頁面。至於各種控制項所謂的能返回DataSet對象,Date對象,或者其他的數據類型,都是封裝了這個處理過程的結果。
觀點二:DOM模型是Ajax最本質的技術
之所以沒有把XMLHttpRequest列為最本質的技術,因為本人覺得它實在是太簡單了,它只是可以讓瀏覽器在後台請求一個頁面,並將其內容交給JavaScript處理。真正的核心應該是:DOM模型,即文檔對象模型。在DOM模型里,Html標記都被認為是一個對象,例如:div對象,table對象等等。DOM模型就規定了這些對象所具有的屬性、方法和事件。通過這些性質,可以對一個已經顯示於瀏覽器的頁面進行內容的修改,例如增加節點、修改節點位置,刪除節點等等。而不僅僅是一個innerHTML屬性這么簡單,雖然這是一個很有用的屬性。
觀點三:在使用Ajax控制項前理解它們的實現
使用Ajax控制項的確可以提高效率,但如果你空中樓閣般使用控制項,那就得不償失了。從一個控制項換到另外一個控制項又會有一個漫長的學習曲線。所以應該從底層了解其,況且Ajax實在不是什麼高深的技術。其實任何東西的最底層其實都是簡單的,但如果封裝了這些底層的東西,事情會變得復雜和難以理解。以Asp.net為例,它的定製特性可以使得只要在方法前加上[ajax
method]類似這樣的標志就可以稱為一個非同步方法,相信這使得Asp.net的Ajax開發顯得更加「高效」或者是「神秘」,而更多的事情則被封裝了。同樣記住一條,任何對伺服器端的請求僅僅是返回純文本,我們不一定要依賴於封裝好的處理過程,而完全可以自己來實現。
觀點四:學好JavaScript
在大多數人看來,JavaScript總不是那麼一種正規的語言,隨便一段就碰巧能運行,學過c之類的人,一看也能看懂,而且在瀏覽器中常常有腳本錯誤提示,所以潛意識覺得總不能付之以大任。事實上,要學好Ajax,這就完全是一種錯誤的看法。javascript作為一種腳本語言,其語法的確不是很嚴格,但並不妨礙其完成諸多復雜的任務,沒有JavaScript,就沒有Ajax。所以本人強烈建議,學Ajax前,一定要好好研究一番JavaScript,一般來講,如果能順利看懂prototype框架的代碼(如:prototype-1.3.1.js),你的JavaScript水平就基本過關了。同時對DOM模型也可以算有一個基本的了解。
觀點五:Ajax點綴:CSS
用JavaScript控制CSS其實很簡單,基本上每個DOM對象都有一個style對象,只要把css屬性里的"-"去掉,並讓隨後的字母變為大寫就可以作為屬性使用了,例如:element.style.backgroundColor="#f00";在css是:選擇符
{background-color:#f00}
採納哦
Ⅸ AJAX到底是如何與伺服器交互的
AJAX
只傳輸數據到伺服器,然後伺服器也直傳數據到客戶端,減少了其他流量帶寬及資源佔用,節省了時間,提高了響應速度。