新聞中心
這篇文章將為大家詳細(xì)講解有關(guān)ajax是什么意思及應(yīng)用場(chǎng)景,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出清河免費(fèi)做網(wǎng)站回饋大家。
1.1 什么是ajax:
- Ajax即“Asynchronous Javascript And XML”(異步JavaScript 和XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。Ajax=異步JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)。通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,Ajax可以使用網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新(無(wú)刷新技術(shù))。傳統(tǒng)的網(wǎng)頁(yè)(不使用Ajax)如果需要更新內(nèi)容,必須重載整個(gè)網(wǎng)頁(yè)頁(yè)面。
1.2Ajax的應(yīng)用場(chǎng)景:
1.2.1 檢查用戶名是否已被注冊(cè):
很多站點(diǎn)的注冊(cè)頁(yè)面都具被自動(dòng)檢測(cè)用戶名是否存在的友好提示,該功能整體頁(yè)面并沒(méi)有刷新,但仍然可以異步與服務(wù)器進(jìn)行數(shù)據(jù)交換,查詢用戶輸入的用戶名是否存在數(shù)據(jù)庫(kù)。
1.2.2 省市級(jí)聯(lián)下拉框聯(lián)動(dòng):
很多站點(diǎn)都存在輸入用戶地址的操作,在完成地址輸入時(shí),用戶所在的省份是下拉框,當(dāng)選擇不同的省份時(shí)會(huì)出現(xiàn)不同市區(qū)的選擇,這就是最常見(jiàn)的省市聯(lián)動(dòng)效果。
1.2.3 內(nèi)容自動(dòng)補(bǔ)全:
不管時(shí)專注于搜索的百度,還是站點(diǎn)內(nèi)商品搜索的淘寶,都有搜索的功能,在i搜索框輸入查詢關(guān)鍵字時(shí),整個(gè)頁(yè)面沒(méi)有刷新,但會(huì)根據(jù)關(guān)鍵字顯示相關(guān)查詢字條,這個(gè)過(guò)程是異步的。
百度的搜索補(bǔ)全功能:
淘寶的搜索補(bǔ)全功能:
1.3 同步方式與異步方式的區(qū)別:
- 同步方式發(fā)送請(qǐng)求:發(fā)送一個(gè)請(qǐng)求,需要等待響應(yīng)返回,然后才能夠發(fā)送下一個(gè)請(qǐng)求,如果該請(qǐng)求沒(méi)有響應(yīng),不能發(fā)送下一個(gè)請(qǐng)求,客戶端會(huì)一直處于等待過(guò)程中。
- 異步方式發(fā)送請(qǐng)求:發(fā)送一個(gè)請(qǐng)求,不需要等待響應(yīng)返回,隨時(shí)可以再發(fā)送下一個(gè)請(qǐng)求,即不需要等待。
1.4 Ajax的原理分析:
- AJAX引擎會(huì)在不刷新瀏覽器地址欄的情況下,發(fā)送異步請(qǐng)求:
- 使用JavaScript獲取瀏覽器內(nèi)置的AJAX引擎(XMLHttpRequest對(duì)象)
- 使用js確定請(qǐng)求路徑和請(qǐng)求參數(shù)
- AJAX引擎對(duì)象根據(jù)請(qǐng)求路徑和請(qǐng)求參數(shù)進(jìn)行發(fā)送請(qǐng)求
- 服務(wù)器接收到Ajax引擎的請(qǐng)求進(jìn)行處理:
- 服務(wù)器獲得請(qǐng)求參數(shù)數(shù)據(jù)
- 服務(wù)器處理請(qǐng)求業(yè)務(wù)(調(diào)用業(yè)務(wù)層代碼)
- 服務(wù)器響應(yīng)數(shù)據(jù)給Ajax引擎
- Ajax引擎獲得服務(wù)器響應(yīng)的數(shù)據(jù),通過(guò)執(zhí)行JavaScript的回調(diào)函數(shù)將數(shù)據(jù)更新到瀏覽器頁(yè)面的具體位置:
- 通過(guò)設(shè)置給Ajax引擎的回調(diào)函數(shù)獲取服務(wù)器響應(yīng)的數(shù)據(jù)
- 使用JavaScript在指定的位置,顯示響應(yīng)的數(shù)據(jù),從而局部修改頁(yè)面的數(shù)據(jù),達(dá)到局部刷新的目的。
2.1js原生的Ajax:
- js原生的Ajax開(kāi)發(fā)步驟:
創(chuàng)建Ajax引擎對(duì)象
為Ajax引擎對(duì)象綁定監(jiān)聽(tīng)(監(jiān)聽(tīng)服務(wù)器已將數(shù)據(jù)響應(yīng)給引擎)
綁定提交地址
發(fā)送請(qǐng)求
監(jiān)聽(tīng)里面處理響應(yīng)數(shù)據(jù)
Title
package com.sunny.web; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(name = "Ajax1Servlet", urlPatterns = "/Ajax1Servlet") public class Ajax1Servlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //獲取請(qǐng)求參數(shù) String name = request.getParameter("name"); String password = request.getParameter("password"); //打印出來(lái) System.out.println("name="+name); System.out.println("password="+password); //輸出數(shù)據(jù)前端 response.getWriter().write("hello js ajax"); } }
2.2 Ajax引擎連接狀態(tài)readyState值0~4變化過(guò)程:
- 存有 XMLHttpRequest 的狀態(tài)。從 0 到 4 發(fā)生變化。
- 0: 請(qǐng)求未初始化
- 1: 服務(wù)器連接已建立
- 2: 請(qǐng)求已接收
- 3: 請(qǐng)求處理中
- 4: 請(qǐng)求已完成,且響應(yīng)已就緒
這里狀態(tài)值4只能說(shuō)明接收到了服務(wù)器的響應(yīng)服務(wù)器處理ajax請(qǐng)求結(jié)束,但是不能代表正確的獲取了服務(wù)器的響應(yīng),需要配合http狀態(tài)碼200兩個(gè)條件就可以說(shuō)明正確的獲取了服務(wù)器響應(yīng)。只有這兩個(gè)條件滿足,xmlhttp.responseText才可以獲取到正確的響應(yīng)數(shù)據(jù)。
xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4){ if(xmlhttp.status == 200){ alert("響應(yīng)數(shù)據(jù)" + xmlhttp.responseText); } } };
關(guān)于ajax是什么意思及應(yīng)用場(chǎng)景就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
分享標(biāo)題:ajax是什么意思及應(yīng)用場(chǎng)景
標(biāo)題網(wǎng)址:http://biofuelwatch.net/article/igssji.html