Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Czekanie na wykonanie pętli
Forum PHP.pl > Forum > Przedszkole
asad
Witam, Chciałbym zapytać w jaki sposób poczekać na wykonanie pętli each w jquery n.p
  1. $.each(dane, function(index,value) {$("#pojemnik").append(index);});
i dopiero, gdy wszystkie wartości zostaną dodane przez pętlę wykonywać jakieś działania np. do wszystkich wartości w #pojemnik dodać 2. Czy jest to w ogóle możliwe?
kamil4u
JavaScript wykonuje instrukcję po instrukcji. Zatem nie ma czegoś takiego jak czekanie, aż zostaną wykonane instrukcje, one wykonują się jedna po drugiej: http://webroad.pl/javascript/746-synchroni...synchronicznosc

Czyli
[JAVASCRIPT] pobierz, plaintext
  1. $.each(dane, function(index,value) {$("#pojemnik").append(index);});
  2. /*W tym miejscu jest wszystko dodane*/
[JAVASCRIPT] pobierz, plaintext


Oznacza to, że możesz po prostu drugi raz zrobić pętlę - drugą pętlę, która służy do zupełnie innego celu.
timon27
Cytat(kamil4u @ 10.03.2014, 21:32:24 ) *
JavaScript wykonuje instrukcję po instrukcji.

A czy istnieją języki które tak nie mają?
slashynsky
http://www.w3schools.com/jquery/jquery_callback.asp
kamil4u
Cytat
A czy istnieją języki które tak nie mają?

To był skrót myślowy.

Jak w JS ustawimy funkcję, która trwa 1s to następne instrukcje będą się wykonywały dopiero po 1s. Są języki, w których możesz pisać wątki i rozwiązać ten problem. W JS obejściem tego problemu jest AJAX.
timon27
Cytat(kamil4u @ 11.03.2014, 10:41:10 ) *
To był skrót myślowy.


Nie nabijałem się smile.gif
Pytałem bo nigdy tego nie robiłem.
Myślę że posty wyżej mogą mi się przydać.
kamil4u
Cytat
Nie nabijałem się smile.gif
Pytałem bo nigdy tego nie robiłem.
Myślę że posty wyżej mogą mi się przydać.

Generalnie jeśli mamy kilkurdzeniowy procesor to można wykonywać kilka instrukcji na raz. A tak to oczywiście możemy zawsze wykonać jedną instrukcję. Mowa tu oczywiście o wykonywaniu przez komputer kodu binarnego( assembler ). Dobrze się tego można nauczyć programując mikrokontrolery.

Życie jest jednak prostsze. Mamy systemy operacyjne, które za nas odwalają całą robotę. W językach niższego poziomu, niż JS - np. C/C++ możemy w łatwy sposób zarządzać pracą rdzeni, tworzyć procesy czy wątki. Wszystko za nas wykonuje system operacyjny. Jeśli chcemy napisać aplikację, która w tyle będzie pobierać dane, a tak to wykonywała jakieś inne operacje to musimy tak naprawdę wykonywać wiele operacji na raz. W większości takich sytuacji korzystamy z wątków.

W JS nie da się tego tak napisać. Nie możemy jednocześnie robić dwóch operacji na raz. Ale ponieważ z biegiem czasu bardzo tego brakowało, głownie po to, żeby pobrać jakieś dane z serwera to wymyśli AJAX. Dzięki temu możemy asynchronicznie wykonywać pewne operacje. Do poczytania artykuł w moim pierwszym poście.

Pozdrawiam
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.