jquery each ajax

RD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

Cześć,
mam kod:

Kopiuj
$.each(array, function(index, value) {
ajaxSendData(value);
});

ja zrobić aby kolejne wywołania funkcji

Kopiuj
ajaxSendData

wykonały się dopiero, jak otrzymamy np. true ?
Pytam, bo mam kilka tys wpisów w tablicy i nie chcę zajechać przeglądarki.. :D

Freja Draco
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3394
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 644
0

Dlaczego wysyłasz je pojedynczo a nie wszystkie razem?

RD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

Chciałem to obrobić w php, ale wywala serwer przez długi czas odpowiedzi - dlatego przesyłam pojedynczy wpis w pętli. Ale jak odpalę each to odpali się parę tysięcy razy ajax i zawiesza przeglądarkę.. ;/
Jakiś pomysł na obejście tego? Wstrzymanie wykonania each póki nie otrzymamy true z funkcji?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Poczytaj o for await w JSie.

RD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0
Patryk27 napisał(a):

Poczytaj o for await w JSie.

Dzięki wielkie! :D mniej więcej o to chodziło. Tylko dalej mam problem bo:

Kopiuj
async function setElement(item) 
{
    const result = await $.ajax({
        url: ajaxurl,
        type: 'POST',
        data: args
    });
    return result;
}
async function prepareArray(array)
{
    $.each(array, function(i, v) {
        await setElement(v);
    });
}

Wyrzuca mi ajax "od razu" dla wszystkich zanim się wykona ;/

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1
Kopiuj
async function prepareArray(array) {
  for (const element in array) {
    await setElement(element);
  }
}
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 644
0

Skąd pochodzą te wpisy? Ktoś ręcznie dodaje kilka tysięcy wpisów? Czy wysyłasz wszystkie a np. zostały zmodyfikowane tylko 2? Nie rób tak, że wysyłasz te żądania po sobie kilka tysięcy raz - nigdy czegoś takiego nie widziałem, a jak bym zobaczył to by mnie to bardzo zmartwiło ;)

RD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0
Markuz napisał(a):

Skąd pochodzą te wpisy? Ktoś ręcznie dodaje kilka tysięcy wpisów?

Nie, jest to tablica pobrana z innego miejsca. Ma ok 250k wpisów. Musze ją przetworzyć (najlepiej zapisać do bazy) a następnie w kolejnej pętli dodać szczegółowe informacje dla każdego (przed chwilą) dodanego elementu.

RD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

Dzięki za pomoc! Szczególne podziękowania dla Patryk27 za nakierowanie! (tak używam for await :) )
Podzieliłem sobie tę tablice na mniejsze pakiety i ajaxem ładuję to do bazy.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.