如果您使用getScript()
,則可以使用成功回調執行函數,但只有在腳本加載完成後才能執行。
我會建議有一個加載指示符圖像(你可以在http://ajaxload.info/找到很多)並在腳本加載時隱藏它。
This SO有幾個其他的想法。一種解決方案如下:
var myTrigger;
var progressElem = $('#progressCounter');
$.ajax ({
type : 'GET',
dataType : 'xml',
url : 'somexmlscript.php' ,
beforeSend : function (thisXHR)
{
myTrigger = setInterval (function()
{
if (thisXHR.readyState > 2)
{
var totalBytes = thisXHR.getResponseHeader('Content-length');
var dlBytes = thisXHR.responseText.length;
(totalBytes > 0)? progressElem.html (Math.round ((dlBytes/ totalBytes) * 100) + "%") : progressElem.html (Math.round (dlBytes /1024) + "K");
}
}, 200);
},
complete : function()
{
clearInterval (myTrigger);
},
success : function (response)
{
// Process XML
}
});
這設置了一個時間間隔來計算加載字節數和總字節數。這可能適合你。
謝謝@sachleen,這就是我目前正在做的事情,我希望有更像螢火蟲的東西。 – Jonathan
我認爲這對我很有用,非常感謝!我喜歡myTrigger的工作方式。 – Jonathan