使用這些方法的每一步是獲取一個頁面元素的引用。而後就能夠在這個元素上調用ajaxStart()和ajaxStop()方法。php
使用語法:html
("#loading").ajaxStart(function(){ $(this).show(); //callback }):當一個當Ajax請求開始時將把id爲"loading"的內容顯示;jquery
("#loading").ajaxStop(function(){ $(this).hide(); //call }):當一個當Ajax請求結束時將把id爲"loading"的內容隱藏;ajax
在開發的過程中,我通常會用它們來作頁面等待進度圖片的顯示,即全部用ajax加載又不能很快加載完成的(有時頁面很慢半天沒顯示),那麼將自動調用ajaxStart顯示一個等待的圖片出來(我通常會用Wbox作彈出一個透明的層),等頁面全部內容ajax加載完成,再關閉該層;ide
爲了便於你們的理解,我舉個簡單的例子,但願對你們有幫助:函數
先把須要的說一下,jquery庫,圖片一張(等待進度的就能夠,網上不少),OK,能夠開始了:post
index.php文件內容以下:this
<script src="jquery.js"></script>
<a href="#" id="o">o</a><br />
<a href="#" id="p">p</a><br />
<a href="#" id="q">q</a><br />
<div id="loading" style="display:none;"><img src="loading.gif" /></div>
<div id="content"></div>url
<script>
$(document).ready(function(){.net
$("#loading").ajaxStart(function(){
$(this).show();
}).ajaxStop(function(){//ajaxStop改成ajaxComplete也是同樣的
$(this).hide();
});
$("#o").click(function(){
$.post("for.php?id=o",function(data){
$("#content").html(data);
});
})
$("#p").click(function(){
$.post("for.php?id=p",function(data){
$("#content").html(data);
});
})
$("#q").click(function(){
$.post("for.php?id=q",function(data){
$("#content").html(data);
});
})
})
</script>
for.php內容以下:
<?php
if($_GET['id'])
{
for($i=0;$i<3;$i++)
{
sleep(4);//爲了模範咱們平時打開頁面很慢,使用sleep函數,讓ajax加載時等待12秒;
echo $_GET['id'];
}
}
?>
OK,把該兩個文件和jquery庫,圖片放於你根目錄下的同一目錄,訪問index.php後,點o或p或q,你先會看到等待進度圖片,加載完成在<a>的下面層顯示ajax加載的內容ooo或ppp或qqq並關閉等待加載的圖片,詳細的你們能夠試試,用多了天然能體會到它的好處,呵呵···
最後要提醒的是,ajaxStart與ajaxStop都是全局方法,不管建立他們的代碼放在何處,只要有ajax執行,他們都會執行。若是在此頁面的其餘地方也使用了ajax,該全局函數一樣執行,由於他們是全局的。若是想使某個ajax不受全局方法的影響,那麼能夠在$.ajax(options)方法中,將參數中的global設置爲false,如:
$.ajax({
url:"test.html", global:false });