欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用JavaScript實現(xiàn)頁面局部更新的方法總結

 更新時間:2023年12月18日 09:29:45   作者:Guava205  
在JavaScript中,Ajax(Asynchronous JavaScript and XML)是一種用于在后臺與服務器進行異步通信的技術,本文給大家介紹了使用JavaScript實現(xiàn)頁面局部更新的三種方法,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下

在 JavaScript 中,Ajax(Asynchronous JavaScript and XML)是一種用于在后臺與服務器進行異步通信的技術。它允許在不刷新整個頁面的情況下,通過發(fā)送 HTTP 請求和接收服務器返回的數(shù)據,實現(xiàn)局部更新頁面內容的功能。

通過 Ajax,可以實現(xiàn)以下功能:

  • 異步加載數(shù)據:可以使用 Ajax 請求從服務器獲取數(shù)據,然后在頁面上進行動態(tài)展示,而無需刷新整個頁面。這在處理大量數(shù)據或需要頻繁更新數(shù)據的場景中非常有用。
  • 表單提交:可以使用 Ajax 將表單數(shù)據以異步方式發(fā)送到服務器,然后根據服務器返回的響應進行相應的處理,而無需頁面刷新。
  • 動態(tài)內容更新:可以使用 Ajax 獲取最新的數(shù)據,并將其插入到頁面中的特定位置,從而實現(xiàn)動態(tài)內容的更新。

在 JavaScript 中,可以通過原生的 XMLHttpRequest 對象來實現(xiàn) Ajax 請求,也可以使用更高級的封裝庫(如 jQuery 的 $.ajax() 方法、axios、fetch 等)來簡化 Ajax 請求的操作。這些封裝庫提供了更方便的方法和更好的跨瀏覽器兼容性。

使用原生 XMLHttpRequest 對象發(fā)送 Ajax 請求

以下是一個使用原生 XMLHttpRequest 對象發(fā)送 Ajax 請求的示例:

<button id = "btn">獲取新歌</button>
<ul id='ul'>
   
</ul>

<script>
    let btn = document.getElementById('btn')
    btn.addEventListener('click',() =>{
        //發(fā)送一個http請求
        let xhr = new XMLHttpRequest()
        xhr.open('GET','http://192.168.31.26:3000/top/song?type=7',true)
        xhr.onreadystatechange = () =>{
            if(xhr.readyState === 4 && xhr.status === 200){
                // console.log(JSON.parse(xhr.responseText)); //響應體
                const result = JSON.parse(xhr.responseText).data
                for(let key in result){
                    // result[key].name
                    const li = document.createElement('li') //動態(tài)創(chuàng)建DOM結構
                    li.innerText = result[key].name
                    document.getElementById('ul').appendChild(li)
                }
            }
        }
        xhr.send()
    })
</script>
  • 首先,通過let btn = document.getElementById('btn')獲取id為"btn"的按鈕元素。
  • 然后,通過btn.addEventListener('click',() => { ... })給按鈕添加了一個點擊事件的監(jiān)聽器。也就是說,當按鈕被點擊時,會執(zhí)行后面的箭頭函數(shù)中的代碼。
  • 在點擊事件的處理函數(shù)中,首先創(chuàng)建了一個新的XMLHttpRequest對象,即let xhr = new XMLHttpRequest()。XMLHttpRequest對象用于在后臺與服務器交換數(shù)據,可以在不重新加載整個頁面的情況下更新頁面的部分內容。
  • 調用xhr.open('GET',''http://192.168.31.26:3000/top/song?type=7' ',true)方法初始化一個新的請求。這里指定了請求的方式為GET,請求的URL為('http://192.168.31.26:3000/top/song?type=7' ) ,這里我們要注意,由于瀏覽器的安全策略限制,Ajax 請求只能與同源的 URL 進行通信,或者使用 CORS(跨域資源共享)進行跨域請求。最后一個參數(shù)指定為true表示使用異步請求。這意味著頁面會在等待服務器響應的同時繼續(xù)執(zhí)行其他腳本,而不會被阻塞。
  • 接下來通過xhr.onreadystatechange方法設置一個回調函數(shù),用于監(jiān)聽XMLHttpRequest對象的狀態(tài)變化。當狀態(tài)發(fā)生變化時,該回調函數(shù)會被調用。
  • 在回調函數(shù)中,首先檢查了XMLHttpRequest對象的狀態(tài)和HTTP狀態(tài)碼是否符合預期,即if(xhr.readyState === 4 && xhr.status === 200)。如果滿足條件,表示請求已經完成且成功返回,可以處理服務器返回的數(shù)據。
  • 解析服務器返回的響應體,將其轉換為JSON格式:const result = JSON.parse(xhr.responseText).data。這里假設服務器返回的是JSON格式的數(shù)據,通過JSON.parse方法將其解析為JavaScript對象。
  • 遍歷解析后的結果,動態(tài)創(chuàng)建li元素,并將歌曲名稱作為li元素的文本內容。這部分代碼通過for...in循環(huán)遍歷result對象的屬性,并為每個歌曲創(chuàng)建一個li元素,然后將其添加到無序列表中。
  • 最后,調用xhr.send()方法發(fā)送HTTP請求。這會觸發(fā)之前設置的onreadystatechange回調函數(shù),從而實現(xiàn)異步請求的處理和數(shù)據更新。

當用戶點擊按鈕時,頁面會執(zhí)行JavaScript代碼,通過Ajax技術向指定URL發(fā)送GET請求,獲取服務器返回的數(shù)據,實現(xiàn)在頁面上動態(tài)顯示這些數(shù)據的功能。

使用 jQuery 的 $.ajax() 方法發(fā)送 AJAX 請求

這段代碼是一個使用 jQuery 的 $.ajax() 方法發(fā)送 AJAX 請求的示例:

<button id = "btn">獲取新歌</button>
<ul id='ul'>
   
</ul>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
    let btn = document.getElementById('btn')
    btn.addEventListener('click',() =>{
        $.ajax({
            url:'http://192.168.31.26:3000/top/song?type=7',
            method:'GET',
            dataType:'JSON',
            success: (res) =>{
                console.log(res);
            }
            
        })
    })
</script>
  • 首先我們引入了 jQuery 庫文件,這里使用了公共 CDN 服務提供的鏈接。
  • 之后我們在script標簽里定義了一個 btn 變量,用來獲取一個 ID 名稱為 btn 的 HTML 元素。
  • 然后給 btn 元素添加了一個點擊事件監(jiān)聽器,當按鈕被點擊時會執(zhí)行回調函數(shù)。
  • 在回調函數(shù)中,使用了 jQuery 提供的 .ajax()方法,在.ajax() 方法,在 .ajax()方法,在.ajax() 方法中,首先指定了請求 URL,即 http://192.168.31.26:3000/top/song?type=7 ,這里使用了 GET 方法。
  • 然后指定了 dataType 為 JSON,表示期望從服務器返回的數(shù)據類型為 JSON 格式。
  • 在請求成功后,會執(zhí)行 success 回調函數(shù),該函數(shù)會接收一個參數(shù) res,表示從服務器返回的響應結果。在這個示例中,使用了 console.log() 方法將 res 輸出到控制臺中。

使用Fetch API進行網絡請求

Fetch API是一種現(xiàn)代的網絡請求API,用于替代傳統(tǒng)的XMLHttpRequest對象,相較于傳統(tǒng)的Ajax更加簡潔和易用。

<button id = "btn">獲取新歌</button>
<ul id='ul'>
   
</ul>

<script>
    let btn = document.getElementById('btn')
    btn.addEventListener('click',() =>{
        fetch('http://192.168.31.26:3000/top/song?type=7')
        .then((data) => {
            return data.json()
        })
        .then((res) =>{
            console.log(res);
        })
    })
</script>

實現(xiàn)過程如下:

  • 首先,通過let btn = document.getElementById('btn')獲取id為"btn"的按鈕元素。
  • 然后,通過btn.addEventListener('click',() => { ... })給按鈕添加了一個點擊事件的監(jiān)聽器。也就是說,當按鈕被點擊時,會執(zhí)行后面的箭頭函數(shù)中的代碼。
  • 在點擊事件的處理函數(shù)中,使用Fetch API發(fā)送了一個GET請求到指定URL,即fetch('http://192.168.31.26:3000/top/song?type=7')。
  • Fetch函數(shù)返回一個Promise對象,可以通過.then()方法處理請求成功后的響應。在這段代碼中,使用第一個.then()方法對返回的Response對象進行處理。
  • 在第一個.then()方法中,使用箭頭函數(shù)(data) => { return data.json() }對響應的數(shù)據進行處理。通過調用data.json()方法,將Response對象的響應體解析為JSON格式,返回一個新的Promise對象。
  • 接下來,使用第二個.then()方法處理解析后的JSON數(shù)據。在這段代碼中,使用箭頭函數(shù)(res) => { console.log(res); }來打印解析后的數(shù)據到控制臺。

這三種方法可以根據自己實際需要去選擇。

以上就是使用JavaScript實現(xiàn)頁面局部更新的方法總結的詳細內容,更多關于JavaScript頁面局部更新的資料請關注腳本之家其它相關文章!

相關文章

  • event.X和event.clientX的區(qū)別分析

    event.X和event.clientX的區(qū)別分析

    解釋一下event.X和event.clientX有什么區(qū)別?event.clientX返回事件發(fā)生時,mouse相對于客戶窗口的X坐標 event.X也一樣但是如果設置事件對象的定位屬性值為relative
    2011-10-10
  • 詳解JavaScript中浮點數(shù)的精度計算

    詳解JavaScript中浮點數(shù)的精度計算

    這篇文章主要來和大家介紹一下JavaScript中浮點數(shù)精度計算的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-06-06
  • javascript設置和獲取cookie的方法實例詳解

    javascript設置和獲取cookie的方法實例詳解

    這篇文章主要介紹了javascript設置和獲取cookie的方法,結合實例形式較為詳細的分析總結了JavaScript操作cookie簡單實現(xiàn)數(shù)據存儲與讀取的相關技巧,需要的朋友可以參考下
    2016-01-01
  • 詳解XMLHttpRequest(二)響應屬性、二進制數(shù)據、監(jiān)測上傳下載進度

    詳解XMLHttpRequest(二)響應屬性、二進制數(shù)據、監(jiān)測上傳下載進度

    這篇文章主要為大家詳細介紹了XMLHttpRequest響應屬性、二進制數(shù)據、監(jiān)測上傳下載進度,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • JavaScript常用正則函數(shù)用法示例

    JavaScript常用正則函數(shù)用法示例

    這篇文章主要介紹了JavaScript常用正則函數(shù)用法,結合實例形式分析了JavaScript正則函數(shù)match、exec、test、search、replace、split的功能與具體使用技巧,需要的朋友可以參考下
    2017-01-01
  • JavaScript中執(zhí)行上下文和執(zhí)行棧

    JavaScript中執(zhí)行上下文和執(zhí)行棧

    這篇文章主要介紹了JavaScript中執(zhí)行上下文和執(zhí)行棧,執(zhí)行上下文是評估和執(zhí)行JavaScript代碼的環(huán)境的抽象概念,更多相關介紹,感興趣的朋友可以參考一下
    2022-09-09
  • JavaScript基本類型值-Number類型

    JavaScript基本類型值-Number類型

    本文主要介紹了JavaScript基本類型值-Number類型的相關知識,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Ajax基礎知識詳解

    Ajax基礎知識詳解

    本文主要介紹了Ajax基礎知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 深入淺析javascript繼承體系

    深入淺析javascript繼承體系

    這篇文章主要介紹了javascript繼承體系的相關資料,需要的朋友可以參考下
    2017-10-10
  • JS實現(xiàn)CheckBox復選框全選全不選功能

    JS實現(xiàn)CheckBox復選框全選全不選功能

    在網站的管理后臺應用此功能居多,如一次性處理多個產品,或對文章的刪除對產品的下架等處理,一條一條的點顯然有一些麻煩,如果能每一行放一個checkbox,然后統(tǒng)一處理就好辦的多了,今天我就用簡單的篇幅來講解一下這個功能的實現(xiàn)原理和實現(xiàn)過程。
    2015-05-05

最新評論