溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Ajax如何實現(xiàn)異步請求技術(shù)

發(fā)布時間:2021-08-05 14:30:06 來源:億速云 閱讀:187 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)Ajax如何實現(xiàn)異步請求技術(shù),小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

AJAX的全稱是Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。

AJAX不是新的編程語言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法。ajax是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個頁面的情況下。

ajax是一種在無需重新加載整個網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù)。

ajax是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換。ajax可以使網(wǎng)頁實現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。而傳統(tǒng)的網(wǎng)頁(不使用ajax)如果需要更新內(nèi)容,必須重載整個網(wǎng)頁面。

Ajax如何實現(xiàn)異步請求技術(shù)

在Web應(yīng)用開發(fā)過程中,業(yè)界對前后端的分界線似乎一直都沒有確定的概念,不過大多數(shù)人以瀏覽器作為前后端的分界線。將瀏覽器中為用戶進(jìn)行頁面展示的部分稱為前端,而將運(yùn)行于服務(wù)器,為前端提供業(yè)務(wù)邏輯和數(shù)據(jù)準(zhǔn)備的所有代碼統(tǒng)稱為后端。

Ajax如何實現(xiàn)異步請求技術(shù)

雖然前后端分離在數(shù)年前就已經(jīng)開始受到關(guān)注,但很多人對它卻是只聞其聲,未見其形,所以對它產(chǎn)生了一些誤解,誤以為前后段分離只是一種Web應(yīng)用的開發(fā)模式,只要在Web應(yīng)用的開發(fā)期進(jìn)行了前后端開發(fā)工作的分工就是前后端分離。

其實并非如此,準(zhǔn)確的說,前后端分離并不只是開發(fā)模式,而是Web應(yīng)用的一種架構(gòu)模式。在開發(fā)期,前后端工程師可以通過約定好交互接口,實現(xiàn)并行開發(fā);在運(yùn)行期,前后端分離模式需要對Web應(yīng)用進(jìn)行分離部署,前后端之間使用HTTP請求進(jìn)行交互。

Ajax如何實現(xiàn)異步請求技術(shù)

一、JSON解析

JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。JSON采用完全獨立于語言的文本格式,這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機(jī)器解析和生成。簡單地說,JSON 可以將 JavaScript 對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個字符串,或者在異步應(yīng)用程序中將字符串從 Web 客戶機(jī)傳遞給服務(wù)器端程序。

二、Ajax接口調(diào)用

前后端分離意味著,前后端之間使用 JSON 來交流,兩個開發(fā)團(tuán)隊之間使用 API 作為契約進(jìn)行交互, 通過JSON字符串,然后在異步應(yīng)用程序中將字符串從 Web 客戶機(jī)傳遞給服務(wù)器端程序。這部分學(xué)習(xí)的就是如何從前臺向后臺發(fā)起一個Ajax請求,最后得到服務(wù)器返回的數(shù)據(jù)響應(yīng)之后,進(jìn)行前端頁面的更新。

三、php后臺

Ajax如何實現(xiàn)異步請求技術(shù)

PHP是一種流行的通用腳本語言,特別適合于web開發(fā)。php語言具有以下特點:

1、跨平臺,性能優(yōu)越,和很多免費(fèi)的平臺結(jié)合非常省錢,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結(jié)合,或者數(shù)據(jù)應(yīng)用夠大可以考慮換 PostgreSQL或者Oracle,支持N種數(shù)據(jù)庫。(N >= 10)

2、語法簡單,如果有學(xué)習(xí)C和Perl的很容易上手,并且跟ASP有部分類似。有成熟的開發(fā)工具,比如NuPHPed,或者Zend Studio等等,再Linux平臺下可以使用Eclipse等等。

3、目前主流技術(shù)都支持,比如WebService、Ajax、XML等等,足夠應(yīng)用。

4、有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.net的事件驅(qū)動的框架:Prado,支持類似Ruby On Rails的快速開發(fā)的框架:Cake等等,足夠滿足你的應(yīng)用需求。

5、PHP 5已經(jīng)有成熟的面向?qū)ο篌w系,能夠適應(yīng)基本的面向?qū)ο笠?。適合開發(fā)大型項目。

這部分主要學(xué)習(xí)的如何搭建一個php服務(wù)器,掌握PHP的基本語法,通過php生成一個動態(tài)網(wǎng)頁,掌握如何使用php完成一個標(biāo)準(zhǔn)化的接口,最終返回JSON數(shù)據(jù)給前臺。

四、數(shù)據(jù)庫

Ajax如何實現(xiàn)異步請求技術(shù)

數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,每個數(shù)據(jù)庫都有一個或多個不同的API用于創(chuàng)建,訪問,管理,搜索和復(fù)制 所保存的數(shù)據(jù)。我們也可以將數(shù)據(jù)存儲在文件中,但是在文件中讀寫數(shù)據(jù)速度相對較慢。

MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在 不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。

? Mysql是開源的,所以你不需要支付額外的費(fèi)用。

? Mysql支持大型的數(shù)據(jù)庫??梢蕴幚頁碛猩锨f條記錄的大型數(shù)據(jù)庫。

? MySQL使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語言形式。

? Mysql可以允許于多個系統(tǒng)上,并且支持多種語言。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

? Mysql對PHP有很好的支持,PHP是目前最流行的Web開發(fā)語言。

? MySQL支持大型數(shù)據(jù)庫,支持5000萬條記錄的數(shù)據(jù)倉庫,32位系統(tǒng)表文件最大可支持4GB,64位系統(tǒng)支持最大的表文件為8TB。

這部分主要學(xué)習(xí)的是數(shù)據(jù)中的增刪改查操作,最后通過php訪問數(shù)據(jù)中的數(shù)據(jù),然后通過響應(yīng)的處理,發(fā)揮給前臺使用。

五、Ajax跨域

由于在工作中需要使用AJAX請求其他域名下的請求,但是會出現(xiàn)拒絕訪問的情況,這是因為基于安全的考慮,AJAX只能訪問本地的資源,而不能跨域訪問。

解決方式一:

“XHR2” 全稱 “XMLHttpRequest Level2” 是HTML5提供的方法,對跨域訪問提供了很好的支持,并且還有一些新的功能。

* IE10以下的版本都不支持

* 只需要在服務(wù)器端頭部加上下面兩句代碼:

header( "Access-Control-Allow-Origin:*" );
header( "Access-Control-Allow-Methods:POST,GET" );

解決方式二:

JSONP(JSON with Padding)是一個非官方的協(xié)議,它允許在服務(wù)器端集成Script tags返回至客戶端,通過javascript callback的形式實現(xiàn)跨域訪問(這僅僅是JSONP簡單的實現(xiàn)形式)。

由于同源策略的限制,XmlHttpRequest只允許請求當(dāng)前源(域名、協(xié)議、端口)的資源,為了實現(xiàn)跨域請求,可以通過script標(biāo)簽實現(xiàn)跨域請求,然后在服務(wù)端輸出JSON數(shù)據(jù)并執(zhí)行回調(diào)函數(shù),從而解決了跨域的數(shù)據(jù)請求。

關(guān)于“Ajax如何實現(xiàn)異步請求技術(shù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI