Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zatrzymanie wykonymania skryptu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Beynar
jak zatrzymac wykonywanie skryptu na jakis czas??
bo skryp jak sie wykonuje to leci pokolei linijka po linijce i mam zadeklarowana zmienna,
skrypt wywoluje funkcje co wykonuje operacje na tej zmiennej a w kolejnej linijce wywoluje kolejna funkcje ktora tez operuje na tej zmiennej. i teraz wykonujac skrypt ta pierwsza funkcja nadaje zmiennej jakas wartosc, skrypt wywolujac ta funkje zaraz poniej wywoluje ta druga funkcje. i problem jest w tym ze ta pierwsza funkcja nienadaza nadac wartosci amienne zanim wykona sie kolejna funkcja. i jak zrobic zeby ta druga funkcja czekala dopuki ta pierwsza nieskonczy liczyc??
probowalem settimeout(); ale moze sie zdazyc(a nawet sie zdaza) ze funkcja i tak bezie dluzej wykonywana
sniezny_wilk
Nie rozumiem dlaczego nie nadąża zmieniać tej zmiennej, skoro operuje na tej samej zmiennej, to linijkę niżej ta zmienna ma inną wartość już. Może podasz kawałek kodu, żebyśmy wiedzieli o czym rozmawiamy ?
Beynar
Kod
var zmienna=null;
function wykonaj()
{
nadaj_wartosc();
wyswietl();
}

function nadaj_wartosc()
{
//tutaj funkcja nadaje wartosc zmiennej po wyslaniu zadania do serwera za pomoca AJAKSA
}
function wyswietl()
{
//funkcja wyswietla wartosc zmiennej 'zmienna'
}

i teraz funkcja wyswietl wykona sie zaraz po poprzedniej chociaz ta poprzednia jeszcze nawet nieodebrala odpowiedzi z serwera
sniezny_wilk
To funkcję wyświetl() daj po tym jak dostanie odpowiedź od AJAXA
Beynar
niebardzo bo odpowiedz od ajaxa dostaje w objekcje a odjekt zwraca mi do zmiennej
obiekto nie zmienie gdyz jest uzywane rowiez do innych celow
sniezny_wilk
Masz tam coś takiego w AJAX'ie

  1. http_request.onreadystatechange = function() { alertContents(http_request); };


lub podobne ? i potem

  1. function alertContents(http_request) {
  2.  
  3. if (http_request.readyState == 4) {
  4. if (http_request.status == 200) {
  5. //masz odpowiedz
  6. } else {
  7. //blad
  8. }
  9. }
  10.  
  11. }


zaczerpnięte stąd

No i po odpowiedzi zaczynaj wykonywać wszystko po kolei.
Beynar
niemam bo kozystam z biblioteki mintAJAX
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.