Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyświetlanie danych po zakończeniu ajaxu
Puchatek
post 17.12.2022, 16:36:19
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 4.07.2019

Ostrzeżenie: (0%)
-----


Cześć,
posiadam dwie funkcje:
  1. <script type="text/javascript">
  2. function saveRow(row_id)
  3. {
  4. var form_data = new FormData();
  5. form_data.append('saveRow', $('#row_'+row_id).val());
  6. $.ajax({
  7. type: "POST",
  8. url: "ajax/myphpscript.php",
  9. processData: false,
  10. contentType: false,
  11. async: false,
  12. data : form_data,
  13. success: function (response) {
  14. $('#row_'+row_id).addClass('text-success');
  15. }
  16. });
  17. }
  18.  
  19. function saveAllRows(num)
  20. {
  21. for(var i = 1; i <= num; i++)
  22. {
  23. saveRow(i);
  24. }
  25. }


Są to dwie przykładowe funkcje polegające na kolorowaniu wierszy.
Za pomocą row_id odnajduję wiersz w przygotowanej przeze mnie tabeli z dosyć sporą ilością danych.
Funkcji saveRow mogę użyć za pomocą przycisku umieszczonego w każdym wierszu. Po naciśnięciu przycisku wykonuję swoje rzeczy w pliku php, na który kieruje ajax. Po ich wykonaniu koloruję wiersza na zielono.
Mam również przycisk ogólny, za pomocą którego wywołuję pętle (saveAllRows), by przelecieć przez każdy wiersz automatycznie.
Ajax został ustawiony na synchroniczny.
Wszystko działa jak należy, z wyjątkiem wyświetlania tych danych.
Wiersze niestety nie są kolorowane na bieżąco. Zamiast tego, strona jest "zamrożona", a wszystkie wiersze zostają pokolorowane dopiero w momencie, gdy zostanie wykonana cała pętla.
Problem nie występuje, gdy ajax jest ustawiony asynchronicznie. Jednak wtedy wiersze kolorowane są oczywiście nie po kolei.

Czym może być to spowodowane? Jako ciekawostkę dodam, że kilka miesięcy temu wszystko działało tak jak należy.
W tym czasie aktualizowałem tylko bootstrapa z wersji 5.0 na 5.2.
Myślałem, że to może wina firefoxa, bo problem zauważyłem dosłownie chwilę po jego aktualizacji smile.gif Problem jednak występuje również na innych przeglądarkach oraz komputerach.
Go to the top of the page
+Quote Post
trueblue
post 17.12.2022, 20:14:11
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A może zacząć od modyfikacji skryptu, aby funkcja saveAllRows wywoływała jedno żądanie Ajax?


--------------------
Go to the top of the page
+Quote Post
nospor
post 18.12.2022, 19:24:43
Post #3





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Cytat
Jednak wtedy wiersze kolorowane są oczywiście nie po kolei.

No i co to za problem? Zaden.
Ale tak jak napisal trueblue, zamiast robic milion ajaxow zrob poprostu jeden. Oszczedzisz swoj serwer, siec, dzieki temu 100 drzew nie bedzie musialo byc scietych i takie tam. O poprawie jakosc twojej aplikacji nie wspominajac wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 20:25