『壹』 如何使用Ajax技術開發Web應用程序
一、簡介
AJAX,一個非同步JavaScript和XML的縮略詞,是最近出來的技術詞語。非同步意味著你可以經由超文本傳輸協議(HTTP)向一個伺服器發出請求並且在等待該響應時繼續處理另外的數據。這就意味著,例如,你可以調用一個伺服器端腳本來從一個資料庫中以XML方式檢索數據,把數據發送到存儲在一個資料庫的伺服器腳本,或者簡單地裝載一個XML文件以填充你的Web站點而不需刷新該頁面。然而,在這項新技術提供巨大能力的同時,它也引起了在"Back"按鈕問題上的很多爭論。本文將幫助你確定在真實世界中何時使用AJAX是最佳選擇。
首先,我假定你對縮略詞JavaScript和XML部分有一個基本了解。盡管你能通過AJAX請求任何類型的文本文件,但是我在此主要集中討論XML。我將解釋怎樣在真實世界中使用AJAX以及怎樣在一個工程中評估它的價值。在你讀完本文後,你將會明白什麼是AJAX,在什麼情況下,為什麼以及怎樣使用這項技術。你將要學習,在保持給用戶提供直觀體驗的同時怎樣創建對象,發出請求以及定製響應。
我已創建了一個適合於本文的示例工程(你可以下載源代碼)。這個示例實現了一個簡單的請求-它裝載一個包含頁面內容的XML文件並且分析數據以把它顯示在一個HTML頁面中。
二、常規屬性和方法
表1和2提供了一個屬性和方法的概述- 它們為Windows Internet Explorer 5,Mozilla,Netscape 7,Safari 1.2,和Opera等瀏覽器所支持。
表1屬性
屬性 描述
onreadystatechange 當請求對象變化時該事件處理器激活。
readyState 返回指示對象的當前狀態的值。
responseText 來自伺服器的響應串的版本 。
responseXML 來自伺服器的響應的DOM兼容的文檔對象。
status 來自伺服器的響應的 狀態碼。
statusText 以一個字元串形式返回的狀態消息。
表2方法
方法 描述
Abort() 取消當前HTTP請求。
getAllResponseHeaders() 檢索所有的HTTP頭值。
getResponseHeader("headerLabel") 從響應體中檢索一個HTTP頭部的值。
open("method","URL"[,asyncFlag[,"userName" [,"password"]) 初始化一個MSXML2.XMLHTTP請求,並從該請求指定方法,URL和認證信息 。
send(content) 發送一個HTTP請求到伺服器並接收響應。
setRequestHeader ("label", "value") 指定一個HTTP頭的名字。
三、從哪裡開始
首先,你需要創建XML文件-後面我們對之進行請求並作為頁面內容進行分析。你正在請求的文件必須與 目標工程駐留在相同的伺服器上。
下一步,創建發出請求的HTML文件。當頁面通過使用頁面主體 中的onload方法進行載入時,該請求發生。接著,該文件需要一個有ID的div標簽,這樣當我們准備好要 顯示內容時就可以對之進行定位。當你做完所有這些,你的頁面的主體上去,如下:
<body onload="makeRequest('xml/content.xml'); ">
<div id=""></div>
</body>
四、創建請求對象
為了創建請求對 象,你必須檢查是否瀏覽器使用XMLHttpRequest或ActiveXObject。這兩個對象之間的主要區別在於使用 它們的瀏覽器。Windows IE 5 及以上版本使用ActiveX對象; 而Mozilla,Netscape 7,Opera和Safari 1.2及以上版本使用XMLHttpRequest對象。另外一個區別是你創建對象的方式:Opera,Mozilla, Netscape和Safari允許你簡單地調用該對象的構造器,但是Windows IE需要把對象的名字傳遞到ActiveX 構造器中。下面是怎樣創建代碼來決定要使用哪個對象和怎樣創建它的示例:
if (window.XMLHttpRequest)
{ request = new XMLHttpRequest(); }
else if (window.ActiveXObject)
{ request = new ActiveXObject("MSXML2.XMLHTTP"); }
五、發出請求
現在既然你已經創建了你的請求對象,那麼你已經為向伺服器發 出請求作了准備。創建一個到事件處理器的參考以聽取onreadystatechange事件。然後,該事件處理器 方法將在狀態發生變化時作出響應。一旦我們完成請求,我們就開始創建這個方法。打開連接以GET或 POST一個定製的URL-在此是一個content. xml,並且設置一個布爾定義-是否你想要進行非同步調用。
現在到了發出請求的時間了。在這個示例中,我使用了null,因為我們使用的是GET; 為了使用 POST,你需要使用下面這個方法發出一個查詢串:
request.onreadystatechange = onResponse;
request.open("GET". url, true);
request.send (null);
六、定製載入和錯誤處理消息
你為onreadystatechange方法創建的事件處理器 正是集中進行載入和處理錯誤的場所。現在到了考慮用戶並針對他們與之交互的內容的狀態提供反饋的 時候了。在這個實例中,我針對所有的裝載狀態代碼提供反饋,並且也對最經常發生的錯誤處理狀態代 碼提供一些基本的反饋。為了顯示請求對象的當前狀態,readyState屬性包括顯示在下表中的一些值。
值 描述
0 未初始化,對象沒有用數據進行初始化。
1 裝載中,對象正在裝載它 的數據。
2 裝載結束,對象完成了它的數據的裝載。
3 可交互,用戶能與對象交互了, 盡管它還沒有裝載結束。
4 完成,對象已經完全被初始化。
W3C中有很長的一串有關HTTP 狀態代碼的定義。我選擇了兩個狀態代碼:
200:請求成功了。
404:伺服器沒有找到與所 請求的文件相匹配的任何東西。
最後,我檢查任何另外的狀況代碼-它們將生成一個錯誤並提供 一個一般錯誤信息。下面是一個代碼示例-你可以用之來處理這些情況。注意,我在定位我們前面在HTML 文件的主體中創建的div ID並且對它應用裝載和/或錯誤信息-通過innerHTML方法-這個方法用於設置在 div對象的開始和結束標簽之間的HTML:
if(obj.readyState == 0)
{ document.getElementById('').innerHTML = "Sending Request..."; }
if(obj.readyState == 1)
{ document.getElementById('').innerHTML = "Loading Response..."; }
if(obj.readyState == 2)
{ document.getElementById('').innerHTML = "Response Loaded..."; }
if(obj.readyState == 3)
{ document.getElementById('').innerHTML = "Response Ready..."; }
if(obj.readyState == 4){
if(obj.status == 200){ return true; }
else if(obj.status == 404)
{
// 添加一個定製消息或把用戶重定 向到另外一個頁面
document.getElementById('').innerHTML = "File not found";
}
else
{document.getElementById('').innerHTML = "There was a problem retrieving the XML."; }
當狀況代碼為200 時,這意味著請求成功。下面開始進行響應了。
七、分析響應
當你准備好分析來自請求 對象的響應時,真正的工作開始了。現在你可以用你請求的數據開始工作。僅為測試目的,在開發期間 ,可以使用responseText和responseXML屬性來顯示來自響應的原始數據。為了存取XML響應中的結點, 首先使用你創建的請求對象,定位到responseXML屬性以檢索(你可能已經猜測出來)來自響應的XML。定 位到documentElement-它檢索一個到XML響應的根結點的參考。
var response = request.responseXML.documentElement;
現在既然你有了到響應的根結點的參考,那麼你可以使 用getElementsByTagName()以結點名字來檢索childNodes。下面一行用一個頭部的nodeName來定位一個 childNode:
response.getElementsByTagName('header') [0].firstChild.data;
使用firstChild.data可以允許你存取該元素中的文本:
response.getElementsByTagName('header')[0].firstChild.data;
下面是怎樣 創建這些代碼的完整的例子:
var response = request.responseXML.documentElement;
var header = response.getElementsByTagName ('header')[0].firstChild.data;
document.getElementById ('').innerHTML = header;
八、需求分析
現在既然你知道怎樣使用 AJAX的基礎知識,那麼下一步就是決定是否在一工程使用它。須記住的最重要的事情是,在你還沒有刷 新頁面時你無法使用"Back"按鈕。為此,可以先專注於你的工程中的一小部分-它能夠從使用 這種類型的交互中受益。例如,你可以創建一個表單-它在用戶每次輸入一個輸入欄位或一個字母時查詢 一個腳本以便進行實時校驗。你可以創建一個拖放頁面-在釋放一項時,它能夠把數據發送到一個腳本中 並把該頁面的狀態保存到一個資料庫中。使用AJAX的理由毫無疑問是存在的; 並且這種使用無論對開發 者還是用戶都會帶來益處; 這全依賴於具體的條件和執行情況。
還有其它方法可用來解決 "Back"按鈕的問題,例如使用Google Gmail-它現在能夠為你的操作提供一種撤消功能而不刷 新該頁面。以後還會出現許多更具創造性的例子-它們將通過提供給開發者創建獨特實時的體驗的手段給 用戶帶來更大的好處。
九、結論
盡管AJAX允許我們構建新的和改進的方式來與一個WEB頁 面進行/交互; 但是作為開發者,我們需要牢記產品是不考慮技術的; 它關心的是用戶以及其如何與用戶 進行交互。沒有了用戶群,我們構建的工程毫無用處。基於這個標准,我們就能評估應該使用什麼技術 以及何時使用它們來創建對相應用戶有用的應用。
『貳』 web前端要懂ajax嗎
肯定的懂得!ajax是前端的一部分!是處理數據的!不懂就僅限於前端而已,不能跟後台交互,不會AJAX有一定的局限性!
『叄』 web前端,AJaX跟jq好學嗎
JQuery只是一個便於提升編程效率的JavaScript庫,它有一些API,把常用的記住就行了,沒有什麼難度,不會的看一下API文檔就行了。不用特意去學,用幾次就會了。
如果用jQuery,則AJAX也可以使用JQuery提供的API,也可以研究研究原生的。
這兩個基本沒有什麼學習成本
『肆』 web開發需要學習什麼
首先對於Web前端初學者而言,HTML和CSS是需要掌握的內容。
HTML稱為超文本標記語言,是一種標識性的語言。HTML文本是由HTML命令組成的描述性文本,HTML命令可以說明文字,圖形、動畫、聲音、表格、鏈接等。
CSS層疊樣式表是一種用來表現HTML或XML等文件樣式的計算機語言。CSS不僅可以靜態地修飾網頁,還可以配合各種腳本語言動態地對網頁各元素進行格式化。 CSS 能夠對網頁中元素位置的排版進行像素級精確控制,支持幾乎所有的字體字型大小樣式,擁有對網頁對象和模型樣式編輯的能力。
綜合來看,通過學習HTML和CSS主要是為了實現各終端頁面布局,但是現在為了提升用戶界面的體驗,越來越多的產品更加註重交互效果的展示,那麼提到交互效果就離不開JavaScript。JavaScript是一種屬於網路的腳本語言,已經被廣泛用於Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。
為了在實際開發中代碼編寫的更加簡潔、規范,那麼就需要Web開發人員能夠熟練的使用前端框架。前端框架一般指用於簡化網頁設計的框架,這些框架封裝了一些功能,比如HTML文檔操作,各種按鈕、表單控制項等,常用的前端框架有Bootstrap框架、React框架、Vue框架、Angular框架等。
希望我的回答能幫到你,望採納!!
『伍』 如何學習ajax 安裝什麼軟體 有哪些內容 基礎學些什麼 做java web 裡面引用js jquery 就是使用了aja
軟體:vim
基礎學:HTML, JavaScript, HTTP協議與服務端技術
--
Ajax: Asynchronized Javascript and XML
也就是ajax起碼包括了js和xml,當然這只是用到的東西,但不意味著你用了js和xml用到了ajax。
(就像打飛機要用手,但是你有手不代表你就會打飛機)
『陸』 web前端開發需要學習哪些知識
首先我們要分清前端這部分的分工,一般來講分為:設計和開發。設計是設計師的工作,設計師按照用戶需求出設計圖,他們使用的工具一般是fireworks、Dreamweaver和photoshop這類設計工具,圖片出來後,前端開發就需要按照圖片的設計製作HTML靜態頁面,那麼這就是前端開發的主要工作了。
Web前端工程師是協調前端工程師、後端程序員實現網站頁面活程序的界面美化、交互體驗的IT技術開發人員,需要精通HTML、CSS、JavaScript、jQuery、Ajax等核心的Web前端技術,具備互聯網交互設計能力,熟悉Vue、React、angularjs 等最新的框架。
web前端學習主要包括:HTML、CSS、JavaScript、jQuery、Ajax
HTML:不是編程語言,僅僅是數據格式
CSS:無類型的樣式修飾語言,算弱類型語言;需理解每個元素屬性、樣式等
JavaScript:學習起來相對來說不算太難,入手快
jQuery、Ajax:如果想在前端這塊混的好,一定要掌握(雖然不一定要用,但一定要會)
希望我的回答能幫助到您,加油喲!
『柒』 java web中的ajax怎麼使用
$.ajax({
url:url,//url
type:"post",//請求方式
dataType:'json',//數據格式
data:{//參數
"a":'a',
"b":'b'
},
success:function(data){//成功後執行方法;處理返回值
alert(data);
},
error:function(){//成功後執行方法
alert("載入錯誤!");
}
});
以上是簡單的例子
具體參見:http://www.w3school.com.cn/jquery/ajax_ajax.asp
『捌』 做web前端開發,已經學習了html,css,js,後邊還要學點什麼,直接再學ajax、jquery嗎
這個問題明顯就知道你其實沒有很高的學完js,ajax這種技術在js和jq都是有相對應的方法,在你學習js的時候,應該有對應的拓展學習,另外jq其實是封裝之後的js,學習玩js之後,jq的學習和上手都很快!
不過,做web開發,這些技術都需要了解學習的!之後還有其他的技術需要學習,比如canvas繪圖技術
『玖』 關於web伺服器內部如何實現ajax調用的問題
Ajax 簡介
Ajax 由 HTML、JavaScript™ 技術、DHTML 和 DOM 組成,這一傑出的方法可以將笨拙的 Web 界面轉化成交互性的 Ajax 應用程序。本文的作者是一位 Ajax 專家,他演示了這些技術如何協同工作 —— 從總體概述到細節的討論 —— 使高效的 Web 開發成為現實。他還揭開了 Ajax 核心概念的神秘面紗,包括 XMLHttpRequest 對象。
五年前,如果不知道 XML,您就是一隻無人重視的丑小鴨。十八個月前,Ruby 成了關注的中心,不知道 Ruby 的程序員只能坐冷板凳了。今天,如果想跟上最新的技術時尚,那您的目標就是 Ajax。
但是,Ajax 不僅僅 是一種時尚,它是一種構建網站的強大方法,而且不像學習一種全新的語言那樣困難。
一、業務需求
在開發中,當一個列表頁面載入完成後,我需要根據列表每一項的id去伺服器端獲取對應的數據然後再把獲取的數據賦給當前id對應的標簽。
例如如下表格: