是否有可能使用進度條來測量jQuery.get()的進度?如何在jQuery.get()中創建進度條
回答
這並不是在當前版本的jQuery中開箱即用的,但仍然可能不費吹灰之力。
您應該聽取XMLHttpRequest
的progress
事件,jQuery允許您訪問該事件。一個例子from Dave Bond's blog:
$.ajax(
{
type: 'POST', // 'POST' here so that _upload_ progress _also_ makes sense;
// Change to 'GET' if you need.
url: "/", data: {},
beforeSend: function(XMLHttpRequest)
{
//Upload progress
XMLHttpRequest.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded/evt.total;
//Do something with upload progress
}
}, false);
//Download progress
XMLHttpRequest.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded/evt.total;
//Do something with download progress
}
}, false);
},
success: function(data){
// successful completion handler
}
});
下面的鏈接docs on XMLHttpRequest
's progress
event。
您可能還想看看jquery.ajax-progress plugin,以避免自己做。
注:
一些舊的瀏覽器可能不支持
progress
事件。要計算下載進度,您必須知道要下載的資源大小,即服務器必須發送
Content-length
HTTP標頭。如果不知道規模,則無法計算進度。這是progress
事件的lengthComputable
屬性的用途。
如果您能夠將服務器正在處理的任務劃分爲多個處理塊,則可以使服務器響應調用另一個$.get()
,並以此方式更新進度欄。
function get_chunk(chunk_number, max_chunks){
$.get('eg.php?chunk=' + chunk_number, function(){
chunk_number++;
if(chunk_number < max_chunks){
get_chunk(chunk_number, max_chunks)
}
update_status_bar(chunk_number, max_chunks);
}
}
否則,你將不得不考慮像Comet Web應用程序模型,使用服務器端推在客戶端不必提出請求,以便數據被髮送到客戶端
這取決於您使用的服務器技術tho .. – user1600124
如何如此?如果你可以將你的服務器正在進行的過程分解成可以被一個接一個調用的函數,那麼可以在大多數(如果不是全部)技術上完成。它不適用於像沒有工作一樣檢索圖像的情況,但是如果您需要返回從數據庫中說出結果列表,則可以限制數據庫的結果,並一次拉回100個結果,而不是整個結果一套說100000 – DGS
那麼..你打算如何確定哪個用戶下載哪個文件?會議? Php使用會話鎖定,因此會話文件一次只能被一個請求使用。 – user1600124
- 1. 如何創建進度條
- 2. 創建進度條
- 3. 如何在android中創建條紋進度條
- 4. 如何用進度條創建p:tabView
- 5. 如何使用nsDialogs創建進度條?
- 6. 在PHP中創建文件進度條
- 7. 在iOS中創建動畫進度條
- 8. 在Android中創建靜態進度條
- 9. 在vb.net中創建垂直進度條
- 10. 試圖創建進度條
- 11. 如何獲得FFMPEG進度以創建進度條?
- 12. 如何在Titanium Appcelerator中創建圓形進度條?
- 13. 如何在fileupload中創建上傳進度條php
- 14. 如何在powerpoint vba中創建進度條?
- 15. 如何在web2py中創建進度條/米?
- 16. 如何在Android中創建弧形進度條?
- 17. 如何在PHP中創建文件上傳進度條?
- 18. Java。如何在IDEA控制檯中創建進度條?
- 19. 如何在下面的圖片中創建進度條?
- 20. 如何在Ajax和Perl中創建Web進度條?
- 21. 如何在sprite工具包中創建進度條?
- 22. 如何在html5,javascript或php中創建進度條?
- 23. 如何在Android中創建此進度條?
- 24. 如何在Bootstrap中創建垂直進度條
- 25. 如何在html5,phonegap和jQuery中創建進度條
- 26. 如何在android上創建在線加載進度條?
- 27. 在Python中爲進行中的請求創建進度條
- 28. 如何進度進度條
- 29. 如何爲R中的數據加載創建進度條?
- 30. 如何在下載文件時爲NSURLConnection創建進度條?
否AFAIK這是不可能的 –