2011-04-01 47 views
2

我使用下面的代碼預加載MP3:jQuery的阿賈克斯()預裝多東西

$.ajax({ 
    url: "boom.mp3", 
    success: function() { 
     //done 
    } 
}); 

有反正我可以有預裝(圖像和MP3例如)多個元素?

例如

$.ajax({ 
    url: "boom.mp3", "moo.jpg", 
    success: function() { 
     //done 
    } 
}); 

乾杯!

+0

在最後的代碼塊中,你的意思是'url:[「boom.mp3」,「moo.jpg」],'? – rxgx 2011-04-01 09:51:48

+0

@rxgx:我認爲這純粹是OP試圖實現的一個例子。 – 2011-04-01 12:42:23

回答

8

如果您使用jQuery 1.5,有兩種新的方法來處理這個問題:延遲和承諾。

Creating Responsive Applications Using jQuery Deferred and Promises

function successFunc(){ 
    console.log(「success!」); 
}  

function failureFunc(){ 
    console.log(「failure!」); 
} 

$.when(
    $.ajax("/main.php"), 
    $.ajax("/modules.php"), 
    $.ajax("/lists.php") 
).then(successFunc, failureFunc); 

要在您的實例使用,例如,只是load更換ajax請求。

-2
<script> 
$.ajax({ 
    type:"GET", 
    url:'', 
    dataType:'json', 
    async:false, 
    beforeSend:function(data){ // Are not working with dataType:'jsonp' 
     $('#content').html('Loading...'); 
    }, 
    success:function(data){ 
     $('#content').html(data.content); 
    } 
}); 
</script> 

beforeSend(jqXHR, settings)

+1

所以,我讀到了......你說的是什麼?我必須在「beforeSend」中運行另一個'ajax()'請求嗎?這似乎嚴重不足。 – 2011-04-01 09:41:52

+0

你的編輯仍然不會工作,因爲你沒有定義*任何*預加載。 – 2011-04-01 09:45:10

+0

我只是顯示文本'loading..'。直到ajax完成 – diEcho 2011-04-01 09:46:23

2

從我一個想法:收集通過數組的數組和循環中的所有文件名。將接收到的選項保存在另一個陣列中,並將其用於您想要的內容。

也許它會工作,如果你定義的URL參數中的對象,冒號分隔。