Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Status wykonania skryptu
Forum PHP.pl > Forum > XML, AJAX > AJAX
kilofmar
Witam.

Chciał bym wykona status wykonania skryptów.
Mam np. dwa skrypty, chcę aby wykonał się jeden i zwrócił jakiś komunikat a dopiero po wykonaniu pierwszego uruchomił się drugi skrypt.


Jak to mam wstrzymać wykonanie drugiego skryptu dopóki pierwszy nie skończy się wykonywać?
  1. $.get('skrypt1.php', function(data) {
  2. document.getElementById('wynik').innerHTML += data;
  3. });
  4.  
  5.  
  6. $.get('skrypt2.php', function(data) {
  7. document.getElementById('wynik').innerHTML += data;
  8. });
  9.  
  10.  


nospor
Po grzyba wstrzymywać? Po prostu odpalaj dopiero gdy drugi się wykona:
Kod
$.get('skrypt1.php', function(data) {
    document.getElementById('wynik').innerHTML += data;
$.get('skrypt2.php', function(data) {
    document.getElementById('wynik').innerHTML += data;
});

});
kilofmar
Faktycznie działa. Dzięki smile.gif
I jeszcze jedno pytanie.

I jak to teraz zapętlić, tak aby skrypt kolejny wykonał się dopiero po wykonaniu poprzedniego?



  1.  
  2.  
  3. var tablica = new Array(14,15,16);
  4.  
  5. for(i in tablica)
  6. {
  7.  
  8. document.getElementById('status'+ tablica[i]).innerHTML = '<img src="images/loading.gif" border="0">';
  9. $.get('skrypt.php?id='+ tablica[i], function(data) {
  10. document.getElementById('status'+ tablica[i]).innerHTML = '<font color=green>Wykonane</font>';
  11. });
  12.  
  13. }
  14.  
  15.  




mariusz-alef-bak
Cytat(kilofmar @ 11.10.2011, 20:42:33 ) *
I jak to teraz zapętlić, tak aby skrypt kolejny wykonał się dopiero po wykonaniu poprzedniego?


myślę, że następujący kod pozwoliłby wykonać to, co zamierzasz:

[JAVASCRIPT] pobierz, plaintext
  1. function loadNext(list) { // przechowaj listę w domknięciu
  2.  
  3. var index; // przechowaj aktualny indeks w domknięciu
  4.  
  5. function loadNextStep() { // właściwa funkcja
  6. var element; // aktualnie modyfikowany element DOM
  7.  
  8. if (index === undefined) {
  9. index = 0;
  10. }
  11. else {
  12. index++;
  13. }
  14.  
  15. if (index >= list.length) {
  16.  
  17. return;
  18. }
  19.  
  20. element = $('#status' + list[index]); // skoro używasz jQuery, można pozbyć się document.getElementById
  21. element.html('<img src="images/loading.gif" border="0">');
  22. $.get('skrypt.php?id=' + list[index], function(data) {
  23. element.html('<font color=green>Wykonane</font>'); // nie trzeba drugi raz szukać, element jest
  24. // zachowany w domknięciu
  25. loadNextStep(); // wywołaj kolejny krok
  26. });
  27. }
  28.  
  29. loadNextStep();
  30.  
  31. }
  32.  
  33. loadNext([14, 15, 16]);
[JAVASCRIPT] pobierz, plaintext
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.