首頁 web前端 html教學 Ajax怎麼實現網頁非同步更新

Ajax怎麼實現網頁非同步更新

Feb 28, 2018 am 09:41 AM
ajax 非同步 網頁

這次帶給大家Ajax怎樣實現網頁非同步更新,Ajax實作網頁非同步更新的注意事項有哪些,以下就是實戰案例,一起來看一下。

1:ajax的概念

全名為:Asynchronous Javascript And Xml

AJAX不是一種新的程式語言,而是一種用於創建更快更好以及互動性更強的WEB應用程式技術,該技術在98年前後得到了應用。透過AJAX,你的JS可以透過JS的XMLHttpRequest物件在頁面不重載的情況下與伺服器直接進行通訊。這樣可以在伺服器請求到想要的數據,而不是整個頁面。 AJAX的核心就是JS的XMLHttpRequest物件。 xhr物件是在IE5中首次引入,它是一種支援非同步請求的物件。

 2:ajax的優點

無刷新更新資料。

非同步與伺服器通訊。

基於標準被廣泛支持。

前端與後端分開。

節省頻寬。

 3:寫步驟

1.建立XMLHttpRequest物件。

所有現代瀏覽器(IE7+,chrome,firefox,opera,safari)均內建XMLHttpRequest物件。但是IE5、6使用ActiveXObject物件

function getAjax() {
var  xmlhttp = null;
if(window.ActiveXObject){
         xmlhttp = new ActiveXObject(’Microsoft.XMLHTTP’);
} else if(window.XMLHttpRequest){
         xmlhttp = new XMLHttpRequest();
}
return  xmlhttp;
}
登入後複製

2.開啟與Server的連接,指定傳送方式、URL以及權限等。

open方法:建立新的HTTP請求,並指定此請求的方法,URL以及驗證資訊。

xhr.open(type, url, async, user, password);

type:HTTP請求方式,GET、POST等。大小寫不敏感。

url:請求位址。

async:布林型,請求是否為非同步方式。預設為true。如果為真,當狀態改變時會呼叫onreadystatechange屬性指定的回呼函數。 (可選)

user:如果伺服器需要驗證,此處指定使用者名,如果未指定,當伺服器需要驗證時,會彈出驗證視窗。 (少用僅了解)

password:驗證資訊中的密碼部分,如果使用者名為空,則此值將會被忽略。 (少用只了解)

註:

     在AJAX中,其實我們就是來模擬正常的表單提交資料。正常的表單在POST資料時,會發送Content-Type字段,所以我們在AJAX中就要指定該字段值為application/x-www-form-urlencoded。並且對字段名稱和值進行編碼處理在發送。使用setRequestHeader:單獨指定請求的某個HTTP頭。

註:資料應使用encocdeURIComponent()函數進行編碼。

3.發送指令。

send():傳送請求到HTTP伺服器並接收回應。

此方法的同步或非同步方式取決於open方法中的async參數,如果async為true,此方法將立即返回,如果為false,此方法將會等待請求完成或逾時時才會返回。

xhr.send(body);

body:透過此請求傳送的資料。 GET請求設定為null即可。

4.等待並接收伺服器傳回的處理結果。

5.客戶端接收。

6.釋放XMLHttpRequest物件。

 4:回呼函數

透過onreadystatechange屬性指定readystate屬性改變時的事件處理回呼函數。

xhr.onreadystatechange = function(){}

readyState屬性:傳回請求的目前狀態。

狀態:

0:物件已建立,尚未初始化(未呼叫open方法)。

1:物件已建立,尚未呼叫send方法。

2:send方法已呼叫。但是目前的狀態以及HTTP狀態未知。

3:開始接收數據,因為回應以及HTTP頭不全,這時透過responseBody和responseText取得部分數據會出現錯誤。

4:資料接收完畢,此時可以透過responseBody和responseText取得完整的回應資料。

status屬性:傳回目前請求的狀態碼。

200 OK:請求文件已經找到,並正確返回。

304 Not Modified:擁有一個本機的快取副本,伺服器端內容與此相同。

403 Forbidden:請求者對所要求的文件不具有對應的權限。

404 Not Found:請求的文件找不到。

statusText屬性:傳回目前請求的回應行資訊。

responseXML屬性:將回應資訊格式化為XML Document物件傳回。

responseText屬性:將回應資訊作為字串傳回。

5:JS解析JSON

 JSON簡介:(js文章中有提到)

定義:Javascript Object Notation,一種輕量級的基於文本的數據交換格式,易於人閱讀和編寫,也能提高網路傳輸速率。

 ES5新增的兩個方法:

 JSON.parse:將JSON字串資料轉換為JSON物件。

 JSON.stringify:將JSON物件轉換為JSON字串。

 註:1、瀏覽器支援:IE8+。 

  2、JSON格式的字串裡面的key或字串型的value都必須用雙引號包裹。

 6:局部資料刷新

       作業對應的DOM節點(例如註解清單的分頁效果)

  7:事件委託的應用

 事件委託:利用冒泡機制,將子元素事件委託給父元素執行(例如某些新聞網站有去除部分用戶不喜好的新聞)

 8:前後端分離

 後台只管資料輸出和業務邏輯處理,前端負責互動邏輯和介面展示。簡單的說:前端靜態頁面中沒有有後台程式碼,後台輸出不帶有HTML標籤的資料。

前後端分離靠ajax來實現資料的交互作用。 (函數分裝實現具體的分離,demo中給出)

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

如何解決layer.photos()非同步修改圖片位址後顯示異常的問題


##

以上是Ajax怎麼實現網頁非同步更新的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Edge瀏覽器怎麼將網頁用捷徑傳送到桌面? Edge瀏覽器怎麼將網頁用捷徑傳送到桌面? Mar 14, 2024 pm 05:22 PM

  Edge瀏覽器怎麼將網頁用捷徑傳送到桌面?我們很多用戶為了方便直接打開訪問頁面,想要將經常使用的網頁以快捷方式的形式顯示在桌面,但是不知道應該如何操作,針對這個問題,本期小編就來和廣大用戶們分享解決方法,一起來看看今日軟體教學分享的內容。  Edge瀏覽器將網頁傳送到桌面捷徑方法:  1、開啟軟體,點選頁面中的「...」按鈕。  2、在下拉式選單選項中選擇「應用」中的「將此網站作為應用程式安裝」。  3、最後在彈出的視窗中將其

網頁圖片載入不出來怎麼辦? 6種解決辦法 網頁圖片載入不出來怎麼辦? 6種解決辦法 Mar 15, 2024 am 10:30 AM

  有網友發現打開瀏覽器網頁,網頁上的圖片遲遲加載不出來,是怎麼回事?檢查過網路是正常的,那是哪裡出現了問題呢?下面小編就來跟大家介紹一下網頁圖片載入不出來的六種解決方法。網頁圖片載入不出來:  1、網速問題網頁顯示不出圖片有可能是因為電腦的網路速度比較慢,電腦中開啟的軟體比較多,  而我們造訪的圖片比較大,這就可能因為載入逾時,導致圖片顯示不出來,  可以將比較佔網速的軟體將關掉,可以去任務管理器查看一下。  2、造訪人數過多  網頁顯示不出圖片還有可能是因為我們造訪的網頁,在同時段造訪的

網路連線正常但瀏覽器無法存取網頁可能原因 網路連線正常但瀏覽器無法存取網頁可能原因 Feb 19, 2024 pm 03:45 PM

瀏覽器打不開網頁但是網路正常,可能的原因是多種多樣的。當問題出現時,我們需要逐步排查,才能確定具體的原因並解決問題。首先,確定網頁打不開的現像是侷限於某個特定的瀏覽器或所有瀏覽器都無法開啟網頁。如果只有一個瀏覽器無法開啟網頁,可以嘗試使用其他瀏覽器,如Google瀏覽器、火狐瀏覽器等進行測試。如果其他瀏覽器能夠正常開啟網頁,那麼問題很可能出在該特定瀏覽器上,可能

網頁打不開怎麼解決 網頁打不開怎麼解決 Feb 21, 2024 am 10:24 AM

網頁打不開怎麼解決隨著網路的快速發展,人們越來越依賴網路來獲取資訊、進行交流和娛樂。然而,有時我們會遇到網頁打不開的問題,這給我們帶來了很多困擾。本文將為大家介紹一些常見的方法,幫助解決網頁打不開的問題。首先,我們要確定是因為什麼原因導致網頁打不開。可能的原因包括網頁問題、伺服器問題、瀏覽器設定問題等。以下是一些解決方法:檢查網路連線:首先,我們需要

解決jQuery AJAX請求遇到403錯誤的方法 解決jQuery AJAX請求遇到403錯誤的方法 Feb 20, 2024 am 10:07 AM

標題:解決jQueryAJAX請求出現403錯誤的方法及程式碼範例403錯誤是指伺服器禁止存取資源的請求,通常會導致出現這個錯誤的原因是請求缺少權限或被伺服器拒絕。在進行jQueryAJAX請求時,有時會遇到這種情況,本文將介紹如何解決這個問題,並提供程式碼範例。解決方法:檢查權限:首先要確保請求的URL位址是正確的,同時驗證是否有足夠的權限來存取該資

PHP 與 Ajax:建立一個自動完成建議引擎 PHP 與 Ajax:建立一個自動完成建議引擎 Jun 02, 2024 pm 08:39 PM

使用PHP和Ajax建置自動完成建議引擎:伺服器端腳本:處理Ajax請求並傳回建議(autocomplete.php)。客戶端腳本:發送Ajax請求並顯示建議(autocomplete.js)。實戰案例:在HTML頁面中包含腳本並指定search-input元素識別碼。

php怎麼在網頁打開 php怎麼在網頁打開 Mar 22, 2024 pm 03:20 PM

在網頁中執行 PHP 程式碼需要確保 Web 伺服器支援並已正確配置 PHP。可以透過三種方式開啟 PHP: * **伺服器環境:**將 PHP 檔案放置在伺服器根目錄並透過瀏覽器存取。 * **整合開發環境:**將 PHP 檔案放置在指定 Web 根目錄並透過瀏覽器存取。 * **遠端伺服器:**透過伺服器提供的 URL 位址存取託管在遠端伺服器上的 PHP 檔案。

解決jQuery AJAX請求403錯誤的方法 解決jQuery AJAX請求403錯誤的方法 Feb 19, 2024 pm 05:55 PM

jQuery是一個受歡迎的JavaScript函式庫,用來簡化客戶端端的開發。而AJAX則是在不重新載入整個網頁的情況下,透過發送非同步請求和與伺服器互動的技術。然而在使用jQuery進行AJAX請求時,有時會遇到403錯誤。 403錯誤通常是伺服器禁止存取的錯誤,可能是由於安全性原則或權限問題導致的。在本文中,我們將討論如何解決jQueryAJAX請求遭遇403錯誤

See all articles