eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingKolejkowanie w JavaScript › Re: Kolejkowanie w JavaScript
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!no
    t-for-mail
    From: Krzysztof Antczak <k...@l...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Kolejkowanie w JavaScript
    Date: Sun, 11 Jan 2009 17:18:01 +0100
    Organization: Netia S.A.
    Lines: 54
    Message-ID: <gkd6ie$7qo$1@mx1.internetia.pl>
    References: <gkaa45$8op$1@mx1.internetia.pl> <gkd38q$r2f$1@inews.gazeta.pl>
    NNTP-Posting-Host: 77-254-179-30.adsl.inetia.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: mx1.internetia.pl 1231691150 8024 77.254.179.30 (11 Jan 2009 16:25:50 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Sun, 11 Jan 2009 16:25:50 +0000 (UTC)
    In-Reply-To: <gkd38q$r2f$1@inews.gazeta.pl>
    X-Tech-Contact: u...@i...pl
    User-Agent: Thunderbird 2.0.0.19 (Windows/20081209)
    X-Server-Info: http://www.internetia.pl/news/
    Xref: news-archive.icm.edu.pl pl.comp.programming:180700
    [ ukryj nagłówki ]

    emil pisze:
    > Te funkcje nie istnieją w JS, tylko są udostępniane przez obiekt window
    > przeglądarki. W czystym JS ich nie ma.

    Tak więc są dostępne ;)


    > Nie rozumiem z jakiego powodu setTimeout/setInterval niweczą plan.Nawet
    > w przypadku kolejki powinieneś się nimi posłużyć,np.:
    >
    > NIE:
    > for(var i=0;i<queue.length;i++) {
    > queue[i]()
    > }
    >
    > TAK:
    > var intv = setInterval(function() {
    > if(!queue.length) {
    > clearInterval(intv);
    > return;
    > }
    > queue.pop()()
    > },100);

    Jasne, ale tak jak wspomniałem. Co z gotowymi bibliotekami, które w
    ogóle nie obsługują w ten sposób tych funkcji ?

    > Co jeszcze. JavaScript w przeglądarce jest jednowątkowy. To znaczy, że
    > jeśli wykonujesz jedną funkcję do czasu jej zakończenia nie uruchomi się
    > żadna inna funkcja niezależnie od tego czy wywołujesz ją normalnie czy
    > przez setTimeout.

    Możliwe, całkiem możliwe, ale to nie tłumaczy mi takiego działania:

    setTimeout("window.status = 1;", 200);
    setTimeout("window.status = 2;", 150);
    setTimeout("window.status = 3;", 100);
    setTimeout("window.status = 4;", 50);

    Oczywiście z wiadomej przyczyny cyfra "4", nie będzie tu ostatnią która
    się pojawi w pasku stanu.

    > Więc: jesteś pewien, że potrzebujesz kolejki wykonania?
    > IMHO raczej powinieneś inaczej podejść do problemu.

    Nie można podejść inaczej do _TEGO_ problemu, gdyż problemem jest
    właśnie uzyskanie tej kolejki.

    > Pozdrawiam
    > emil


    Pozdrawiam,
    Krzysztof Antczak

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: