Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan tudok egy adott szakasz...

Hogyan tudok egy adott szakaszon szinkronosan futtatni javascript (és jQuery) funkciókat?

Figyelt kérdés
Egymás után hívok meg két funkciót, amik közül a második az első által végzett módosítások alapján dolgozik. A baj csak az, hogy a második gyakorlatilag hamarabb fut le, mint az első. Próbáltam callback funkcióval is, de úgy meg csak annyi változott, hogy az első funkción belül szaladt el a dolog. (Megj.: az első funkcióban van egy jó hosszú switch, valószínűleg itt keletkezik a próbléma.)
2017. ápr. 5. 20:47
1 2
 1/14 anonim ***** válasza:
49%
A második függvényt az első függvény callbackjében kell meghívni.
2017. ápr. 5. 21:17
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:
tök jó lenne a konkrét példa.
2017. ápr. 5. 23:39
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:
Vagy egy callback-ben hívod meg a második függvényt, vagy pedig egy Promise-t adsz vissza az elsőből, hogy tudd, mikor végzett.
2017. ápr. 6. 10:34
Hasznos számodra ez a válasz?
 4/14 A kérdező kommentje:

Rosszul írtam, a switch egy ciklusban van (jQuery each)...

Callback-el próbáltam, de akkor az első funkció elkezd végig menni a switch-en és eközben már hívja is meg a callback-et. Példa:


[fajl1.js]

funkcio1();

funkcio2();


[fajl2.js]

function funkcio1(){

each_ciklus{

csinalj_valamit();

}

}


function funkcio2(){

csinalj_valamit_az_elsoben_hasznalt_elemek_tulajdonsagainak_fuggvenyeben();

}


Elindul az első futása, elkezd végig menni az elemeken módosításokat végezve azokon, de elindul a 2es is és mivel az csak ellenőriz, gyorsabban fut le, mint az első. Ha az elsőnek adok callback-et, akkor elkezd lefutni a ciklus és miközben ez fut, már meghívta a callback-et.


Ha otthon leszek, megpróbálom érthetőbben leírni...

2017. ápr. 6. 11:01
 5/14 anonim ***** válasza:

Old fel a verseny helyzetet. Iktass be sorompókat. Például.


var sorompo = FALSE;


fgv1:

... // egyéb kód

sorompo = TRUE;

...


fgv2:

... // egyéb kód

while(!sorompo) {}

... // sorompo felengedése után


Ez egy megoldás. Kicsit barbár, de vannak szebbek is.


Nézz utána: Versenyhelyzetek, Mutexek, Párhuzamos programozás

2017. ápr. 6. 13:44
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:
53%

Ez nem barbár, hanem irgalmatlan gányolás.

Ilyet sose!

2017. ápr. 6. 14:34
Hasznos számodra ez a válasz?
 7/14 A kérdező kommentje:
A sorompó akár még jó is lehet, de hogyan tudom egy jQuery each ciklusban eldönteni, hogy mikor ért az utolsó elemhez? Mármint a selectorral kiválasztott elemeket sima tömbként nem tudja kezelni, sima tömbhözmeg .each() funkciót nem tudok rakni.
2017. ápr. 6. 14:47
 8/14 anonim ***** válasza:

A sorompó nagyon rossz megoldás, mivel a javascript egy szálon fut a böngészőben, egy ilyen while ciklus megakaszthatja az egész alkalmazásod, vagy befagyhat a böngészőtab.


Ha linkelnél jsfiddle-ben egy példát, biztosan többet tudnánk segíteni.

2017. ápr. 6. 22:52
Hasznos számodra ez a válasz?
 9/14 A kérdező kommentje:
2017. ápr. 7. 08:17
 10/14 anonim ***** válasza:
Kikommentelve biztos nem fut le hamarabb, sőt, egyáltalán. Kétlem hogy a CIA-nek programozol, szóval nyugodtan leírhatod a konkrét példát, mert amit belinkeltél, az tökéletesen, hiba nélkül lefut, szóval nincs vele probléma :)
2017. ápr. 7. 10:23
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!