溫馨提示×

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

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

jquery異步加載的概念是什么

發(fā)布時(shí)間:2022-05-24 17:08:45 來(lái)源:億速云 閱讀:131 作者:zzz 欄目:web開(kāi)發(fā)

這篇文章主要介紹了jquery異步加載的概念是什么的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇jquery異步加載的概念是什么文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

在jquery中,異步加載又稱為非阻塞加載,一般指在加載的同時(shí)執(zhí)行代碼;也就是當(dāng)瀏覽器在加載JQ或JS的同時(shí),還會(huì)進(jìn)行后續(xù)頁(yè)面處理,這樣可以優(yōu)化腳本文件的加載,提高頁(yè)面的加載速度。jq中可用load()、getJSON()等方法來(lái)實(shí)現(xiàn)異步。

jquery異步加載的概念是什么

本教程操作環(huán)境:windows7系統(tǒng)、jquery1.10.2版本、Dell G3電腦。

什么是jquery異步加載

異步加載又稱為非阻塞加載,當(dāng)瀏覽器在加載JQ或JS的同時(shí),還會(huì)進(jìn)行后續(xù)頁(yè)面處理。

異步加載可以優(yōu)化腳本文件的加載,提高頁(yè)面的加載速度。

什么時(shí)候要使用異步加載?

  • 定時(shí)任務(wù):setTimeout,setInterval

  • 網(wǎng)絡(luò)請(qǐng)求:ajax請(qǐng)求,動(dòng)態(tài)加載

  • 事件綁定

    1個(gè)點(diǎn)擊事件被綁定了之后,我們是不知道瀏覽者什么時(shí)候會(huì)點(diǎn)擊這個(gè)按鈕的,如果瀏覽者一直不點(diǎn)擊按鈕,難道就不給他看頁(yè)面接下來(lái)的動(dòng)作了嗎?顯然不可能,所以要之后的事情和綁定事件同時(shí)做,如果瀏覽者點(diǎn)擊了,那就按點(diǎn)擊之后的動(dòng)作往下走,如果真的沒(méi)點(diǎn)擊,那他也不會(huì)因?yàn)檫^(guò)程被阻塞而導(dǎo)致看不到其他的畫面。

jQuery四種異步加載

在頁(yè)面開(kāi)發(fā)的過(guò)程中,為了加快整體頁(yè)面打開(kāi)的速度,對(duì)于某局部的數(shù)據(jù)采用異步讀?。ˋjax技術(shù))的方法獲取,這一方法的應(yīng)用極大地優(yōu)化了用戶的體驗(yàn),優(yōu)化了頁(yè)面的執(zhí)行。

1、jQuery中的load()方法加載HTML

在傳統(tǒng)的JavaScript中,使用XMLHttpRequest對(duì)象異步加載數(shù)據(jù);而在jQuery中,使用load()方法可以輕松實(shí)現(xiàn)獲取異步數(shù)據(jù)的功能。

load(url,[data],[callback]);

 <script type="text/javascript">
        $(function() {
            $("#Button1").click(function() { //按鈕點(diǎn)擊事件
                $("#divTip").load("6-1b.html"); //load()方法加載數(shù)據(jù)
            })
        })
    </script>
<div class="clsShow">姓名:陶國(guó)榮<br />性別:男<br />郵箱:tao_guo1_rong@163.com</div>

2、jQuery中的全局函數(shù)getJSON()

雖然使用load()方法可以很快地加載數(shù)據(jù)到頁(yè)面中,但有時(shí)需要對(duì)獲取的數(shù)據(jù)進(jìn)行處理,如果將用load()方法獲取內(nèi)容進(jìn)行遍歷,也可以進(jìn)行數(shù)據(jù)處理,但必須先插入頁(yè)面中才能進(jìn)行,執(zhí)行效率不高。

JSON這種輕量級(jí)的數(shù)據(jù)交互格式很方便計(jì)算機(jī)的讀取,效率很高。在jQuery中專門有一個(gè)全局函數(shù)getJSON(),其調(diào)用的語(yǔ)法格式為:

$.getJSON(url,[data],[callback])

   $(function() {
            $("#Button1").click(function() { //按鈕單擊事件
                //打開(kāi)文件,并通過(guò)回調(diào)函數(shù)處理獲取的數(shù)據(jù)
                $.getJSON("UserInfo.json", function(data) {
                    $("#divTip").empty(); //先清空標(biāo)記中的內(nèi)容
                    var strHTML = ""; //初始化保存內(nèi)容變量
                    $.each(data, function(InfoIndex, Info) { //遍歷獲取的數(shù)據(jù)
                        strHTML += "姓名:" + Info["name"] + "<br>";
                        strHTML += "性別:" + Info["sex"] + "<br>";
                        strHTML += "郵箱:" + Info["email"] + "<hr>";
                    })
                    $("#divTip").html(strHTML); //顯示處理后的數(shù)據(jù)
                })
            })
        })

其JSON文件格式為:

[
  {
    "name": "陶國(guó)榮",
    "sex": "男",
    "email": "tao_guo_rong@163.com"
  },
  {
    "name": "李建洲",
    "sex": "女",
    "email": "xiaoli@163.com"
  }
]

3、jQuery中的全局函數(shù)getScript()

在jQuery中,除通過(guò)全局函數(shù)getJSON格式的文件內(nèi)容外,還可以通過(guò)另外一個(gè)全局函數(shù)getScript()獲取JS文件內(nèi)容?;驹O(shè)置如下:

<script type="text/javascript" src="Jscript/xx.js"></script>

動(dòng)態(tài)設(shè)置為:

$("<script type='text/javascript' src='Jscript/xx.js'/>

而通過(guò)全局函數(shù)getScript()加載JS文件可以提高頁(yè)面的執(zhí)行效率

 $(function() {
            $("#Button1").click(function() { //按鈕單擊事件
                //打開(kāi)已獲取返回?cái)?shù)據(jù)的文件
                $.getScript("UserInfo.js");
            })
        })

其JS文件格式如下:

var data = [
  {
      "name": "陶國(guó)榮",
      "sex": "男",
      "email": "tao_guo_rong@163.com"
  },
  {
      "name": "李建洲",
      "sex": "女",
      "email": "xiaoli@163.com"
  }
];

var strHTML = ""; //初始化保存內(nèi)容變量
$.each(data, function() { //遍歷獲取的數(shù)據(jù)
    strHTML += "姓名:" + this["name"] + "<br>";
    strHTML += "性別:" + this["sex"] + "<br>";
    strHTML += "郵箱:" + this["email"] + "<hr>";
})
$("#divTip").html(strHTML); //顯示處理后的數(shù)據(jù)

4、JQuery中異步加載XML文檔

對(duì)XML格式的文檔,jQuery中使用全局函數(shù)$.get()進(jìn)行訪問(wèn),其語(yǔ)法格式為:

$.get(url,[data],[callback],[type])

參數(shù)url表示等待加載的數(shù)據(jù)地址,可選項(xiàng)[data]表示發(fā)送到服務(wù)器的數(shù)據(jù),可選項(xiàng)[callback]表示加載成功時(shí)執(zhí)行的回調(diào)函數(shù),可選項(xiàng)[type]參數(shù)表示返回?cái)?shù)據(jù)格式,可以為:HTML\XML\JS\JSON\TEXT等。

其調(diào)用方式與JSON類似:

 $(function() {
            $("#Button1").click(function() { //按鈕單擊事件
                //打開(kāi)文件,并通過(guò)回調(diào)函數(shù)處理獲取的數(shù)據(jù)
                $.get("UserInfo.xml", function(data) {
                    $("#divTip").empty(); //先清空標(biāo)記中的內(nèi)容
                    var strHTML = ""; //初始化保存內(nèi)容變量
                    $(data).find("User").each(function() { //遍歷獲取的數(shù)據(jù)
                        var $strUser = $(this);
                        strHTML += "姓名:" + $strUser.find("name").text() + "<br>";
                        strHTML += "性別:" + $strUser.find("sex").text() + "<br>";
                        strHTML += "郵箱:" + $strUser.find("email").text() + "<hr>";
                    })
                    $("#divTip").html(strHTML); //顯示處理后的數(shù)據(jù)
                })
            })
        })

XML格式:

<?xml version="1.0" encoding="utf-8" ?>
<Info>
  <User id="1">
    <name>陶國(guó)榮</name>
    <sex>男</sex>
    <email>tao_guo_rong@163.com</email>
  </User>

  <User id="2">
    <name>李建洲</name>
    <sex>女</sex>
    <email>xiaoli@163.com</email>
  </User>
</Info>

關(guān)于“jquery異步加載的概念是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“jquery異步加載的概念是什么”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

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

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

AI