jQuery中的load方法

桃子紅了吶發表於2017-10-06

呼叫load方法的完整格式是:load( url, [data], [callback] ),其中

  • url:是指要匯入檔案的地址。
  • data:可選引數;因為Load不僅僅可以匯入靜態的html檔案,還可以匯入動態指令碼,例如PHP檔案,所以要匯入的是動態檔案時,我們可以把要傳遞的引數放在這裡。
  • callback:可選引數;是指呼叫load方法並得到伺服器響應後,再執行的另外一個函式。

 

一:如何使用data

1.載入一個php檔案,該php檔案不含傳遞引數
$("#myID").load("test.php");
//在id為#myID的元素裡匯入test.php執行後的結果

2. 載入一個php檔案,該php檔案含有一個傳遞引數

$("#myID").load("test.php",{"name" : "Adam"});
//匯入的php檔案含有一個傳遞引數,類似於:test.php?name=Adam

3. 載入一個php檔案,該php檔案含有多個傳遞引數。注:引數間用逗號分隔

$("#myID").load("test.php",{"name" : "Adam" ,"site":"61dh.com"});
//匯入的php檔案含有一個傳遞引數,類似於:test.php?name=Adam&site=61dh.com

4. 載入一個php檔案,該php檔案以陣列作為傳遞引數

$("#myID").load("test.php",{`myinfo[]`, ["Adam", "61dh.com"]});
//匯入的php檔案含有一個陣列傳遞引數。

注意:使用load,這些引數是以POST的方式傳遞的,因此在test.php裡,不能用GET來獲取引數。

二:如何使用callback

比如我們要在load方法得到伺服器響應後,慢慢地顯示載入的內容,就可以使用callback函式。程式碼如下:

$("#go").click(function(){
  $("#myID").load("welcome.php", {"lname" : "Cai", "fname" : "Adam", function(){
    $("#myID").fadeIn(`slow`);}
  );
});




防止jquery使用快取的方法:

快取這東西,在一定程度上加快了頁面的裝載,但是也常常給我們帶來麻煩。在實際運用中,我們可能會碰到瀏覽器快取的問題。比如我就在IE7裡碰到這個問題。

jQuery Load樣本程式碼:

$(document).ready(function(){
  $("#labels").load("/blog/categories/labels.html");
  //在頁面裝載時,在ID為#labels的DOM元素裡插入labels.html的內容。
});

當我更新了labels.html以後,在IE7裡load方法仍舊在使用舊的labels.html,就算我按重新整理鍵也不管用。好在jQuery提供一個防止ajax使用快取的方法,把下面的語句加在head的javascript檔案裡,就可以解決問題。

$.ajaxSetup ({
    cache: false //關閉AJAX相應的快取
});

此外我再介紹幾種方法解決快取的方法。注意:我沒有在jQuery load的問題上測試過,這些方法僅供參考!

1.更改檔名,比如把labels.html改成lables_new.html,但是這是沒有辦法的辦法,一般沒有人這麼做。

2.在labels.html後加上特定時間,比如lables.html?20081116。在實際工作中,在我更新css/javascript檔案後,我都是用這種辦法來防止檔案被快取。

3.在labels.html檔案的頂部加入以下宣告:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

4.load函式不僅可以呼叫HTML,也可以呼叫script,比如labels.php,可以在php檔案裡使用header函式:

<?php
header("Cache-Control: no-cache, must-revalidate");
?>



load的特殊用法:

在load的url里加上空格後面就可以跟選擇器了。

舉例:我需要load  test.html的內容,並只要取id為a的內容。

Title

$(“body”).load(“test.html #a”);本文轉自TBHacker部落格園部落格,原文連結:http://www.cnblogs.com/jiqing9006/archive/2012/08/24/2654069.html如需轉載請自行聯絡原作者

相關文章