Jquery synchronicznie.

Odpowiedz Nowy wątek
2011-09-18 11:16
0

Witam jak zrobić funkcje ktora wykonuje 100 razy ajax.php ale po kolei, czyli zaczyna nastepny dopiero po skonczeniu pierwszego wykonania? Używałem parametru async:false; ale to zamula całą stronę.


$(".idies").each(function()
                    {
                        id = $(this).attr('value');
                        $.ajax({
                           type: "POST",
                           url: "ajax.php",
                           data: "id="+id,
                           success: function(ret){
                           }
                         });        
                    });
To, co chcesz zrobić, to IMO samobójstwo dla serwera :] - Patryk27 2011-09-18 11:25
potrzebuje wykonać operacje 100razy i nie wiem czego użyć, czy bardziej ajaxa czy CRONA - JimMorrison 2011-09-18 11:27

Pozostało 580 znaków

2011-09-18 13:07
0

nie wykonuj ajaxa 100 razy tylko raz ... dane zapisz w tablicy i zserializuj ją, a w języku serwer side odserializuj

Pozostało 580 znaków

2011-09-18 13:08
0

To jest skrypt parsujący strone, także jeśli zrobie to w jednym ajaxie to będzie sie wykonwyał z 10minut i duża szansa że się zwiesi

Pokaż pozostałe 2 komentarze
zastanów się człowieku co dłużej trwa zapisanie tego do tablicy czy wysłanie 100 zapytań do serwera -_- - konrados 2011-09-18 13:15
Nie ważne czy ty do każdego id po stronie serwera potrzebujesz 0.0000000001 sekundy czy 10 sekund, wysłanie zapytania ajax też trwa trochę czasu, i zrób to asynchronicznie, bo synchronicznie to przeglądarka się zwiesi - konrados 2011-09-18 13:17
dobra szukalem tylko alternatywy, bo mialem to zrobione asynchronicznie ale i tak sie zwieszalo, za dużo danych na raz jest - JimMorrison 2011-09-18 13:19
to mówie, żebyś wysyłał jako zserializowana tablica ... - konrados 2011-09-18 13:20
a to, że ty nasrałeś tych curlów to niestety cudów my nie stworzymy, wogóle po co ci 20 curlów do każdego id co ty to sprawdzasz każdym walidatorem jaki istnieje w necie czy co? - konrados 2011-09-18 13:21

Pozostało 580 znaków

2011-09-18 13:27
0

Można użyć kontynuacji. Tylko po co? Jeśli potrzebujesz zrobić 100 requestów synchronicznie to masz niepoprawnie zaprojektowany serwis. Przedstaw całą sytuację bardziej szczegółowo, tego typu rozwiązań się nie powinno używać.


Women were the reason I became a monk - and, ah, the reason I switched back...
Ja jestem ciekaw po co on parsuje własną stronę :P i do tego po co mu curl :P - konrados 2011-09-18 13:30

Pozostało 580 znaków

2011-09-18 14:04
0

Źle to nazwałem to nie jest parser. To jest robot który ze strony z firmami wyciąga wszystkie dane do mojej bazy danych. Dodatkowo szuka na stronach firmowych, które są udostępnione w tym serwisie adresu email. Nie zawsze na stronei glownej jest podany adres email dlatego też przeszukuję drzewo strony (2 krotne zaglębienie linkow) w poszukiwaniu tego maila. I właśnie dlatego mam niekiedy 20-30 wywołań CURL. Jeszcze raz sorry za złe użycie słowa parser. Nie wiem jakie rozwiązanie do takiego tematu jest najlepsze, czy podzielenie danych na mniejsze i wykonywanie na raty CRONEM? czy puszczenie wszystkiego naraz, bo ta liczba 100 jest przykladowa, niekiedy będzie 5000

edytowany 2x, ostatnio: JimMorrison, 2011-09-18 14:10

Pozostało 580 znaków

2011-09-18 14:12
Rev
0

Do czegoś takiego to najlepiej napisać własny daemon, ale jeżeli nie masz takich możliwości to już niech ten CRON wywołuje twój skrypt PHP.
Ten skrypt PHP też niech wszystkiego nie robi na raz, tylko bierze po np. 10 wywołań z bazy danych, przetwarza je i w bazie danych oznacza jako gotowe (albo w ogóle usuwa, jak tam chcesz) i niech wykonuje się od nowa.


edytowany 1x, ostatnio: Rev, 2011-09-18 14:15

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0