Czy jest możliwe, aby pasek postępu mierzył postęp jQuery.get()?Jak uzyskać pasek postępu w jQuery.get()
Odpowiedz
ten nie jest dostarczany od razu po zainstalowaniu w bieżącej wersji jQuery, ale nadal jest możliwy przy niewielkim wysiłku.
Powinieneś posłuchać zdarzenia progress
z XMLHttpRequest
, do którego jQuery zapewnia dostęp. Przykładem 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
}
});
Tutaj link do docs on XMLHttpRequest
's progress
event.
Możesz również chcieć rzucić okiem na jquery.ajax-progress plugin, aby tego uniknąć.
Uwagi:
Niektóre starsze przeglądarki mogą nie obsługiwać zdarzenie
progress
.Aby obliczyć postęp pobierania, należy znać rozmiar pobieranego zasobu, tj. Serwer musi wysłać nagłówek HTTP
Content-length
. Jeśli rozmiar nie jest znany, nie można obliczyć postępu. Właśnie do tego służy właściwośćlengthComputable
zdarzeniaprogress
.
Jeśli możesz podzielić zadanie, które serwer obsługuje na fragmenty przetwarzania, możesz utworzyć odpowiedź serwera dzwoniąc na inną $.get()
i zaktualizować pasek postępu w ten sposób.
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);
}
}
W przeciwnym razie trzeba będzie spojrzeć na model aplikacji internetowych, takich jak Comet który wykorzystuje po stronie serwera popychanie, gdy klient nie musi złożyć wniosek, aby do danych, które będą wysyłane do klienta
zależy to od technologii serwerów użyłeś tho .. – user1600124
Jak to? jeśli możesz podzielić proces, który twój serwer wykonuje na funkcje, które można nazwać jeden po drugim, można to zrobić w większości, jeśli nie we wszystkich technologiach. Nie zadziałałoby to dla rzeczy takich jak pobieranie obrazu koniecznie bez odrobiny pracy, ale jeśli potrzebujesz wrócić, powiedz listę wyników z bazy danych, możesz ograniczyć wyniki z bazy danych i cofnąć 100 na raz zamiast całego wyniku set of say 100000 – DGS
Cóż .. Jak zamierzasz określić, który plik jest pobierany przez którego użytkownika? Sesja? Php używa blokady sesji, aby plik sesji mógł być używany tylko przez jedno żądanie w tym samym czasie. – user1600124
- 1. Pasek postępu JQuery Pasek postępu
- 2. jak kodować pasek postępu
- 3. Jak wyłączyć pasek postępu npm
- 4. Jak szybko zaokrąglić pasek postępu?
- 5. Niestandardowy pasek postępu Android
- 6. Pasek postępu dla AVAssetExportSession
- 7. Pasek postępu tekstu w Matlab
- 8. Pasek postępu kodowania wideo ffmpeg
- 9. Pionowy pasek postępu w Androidzie
- 10. Utwórz pasek postępu w Liferay
- 11. Ogólny pasek postępu w Django
- 12. Pionowy pasek postępu
- 13. Jak zmienić pasek postępu w pętli?
- 14. Grubszy pasek postępu w pakiecie WP7, jak?
- 15. Jak ukryć pasek postępu w systemie Android?
- 16. Jak zrobić nieokreślony pasek postępu w WinForms?
- 17. Jak utworzyć pasek postępu zaznaczania w WPF?
- 18. Jak zmienić pasek postępu obraz w android
- 19. Jak rozwijać pasek postępu poziomo w javafx?
- 20. Pasek postępu konsoli libcurl C++
- 21. Pasek postępu dla nauki scikit?
- 22. Bądź pasek postępu przycisku wewnątrz
- 23. Kątowy 2 pasek postępu HTTP
- 24. Pasek postępu przesyłania plików iframe?
- 25. Jak wyświetlić pasek postępu z jQuery?
- 26. składnia Android pasek postępu styl
- 27. Pasek postępu z 2 wskaźnikami
- 28. Pasek postępu okólnika xamarin - Android
- 29. Pasek postępu z zaokrąglonymi narożnikami?
- 30. grep - jak wypisać pasek postępu lub status
nie AFAIK nie jest możliwe –