JavaScript ei odottele suorituksen valmistumista

Anonyymi

Ongelmana on saada script odottamaan edellisen scriptin valmistumista. Aivan kuin
scriptit ajettaisiin kokonaan eri säikeissä toisistaan riippumattomasti.

34

84

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Annan tässä sivun vieritys funktion koodin, joka olkoon esimerkkinä siitä että tämä suoritus tulisi odottaa ennen kuin sen perään annettaisiin alret-sanoma että tehtävä on suoritettu.

      function pageScroll() {
      window.scrollBy(0,100);
      scrolldelay = setTimeout(pageScroll,speed);
      let Stop = document.documentElement.scrollHeight;
      let KurPos = window.innerHeight window.scrollY;
      if (KurPos == Stop) {
      clearTimeout(scrolldelay);
      window.scroll(0,0);
      }
      }

      Nyt käy niin että tulee ensin ilmoitus suoritetusta tehtävästä, ja vasta sen kuitattuani alkaa sivun vieritys edistyä. Monen moista olen jo ehtinyt kokeilla saadakseni tapahtumat oikeaan järjestykseen, ei vaan onnistu.

      Ajatellaan että tuota vieritys funktiota kutsutaan näin toisesta funktiosta:
      function start() {
      pageScroll();
      alert('Tehtävä, on suoritettu!');
      }

      Olen käyttänyt tämän testaamiseen, minimaalista selainlaajennosta, joka on vain tätä testiä varten. Tuo start() funktiota kutsutaan näin:

      onload=start();

      Eli se on kytketty sivun latautumistapahtumaan. Kuinka tämä tulisi hoitaa että asiat tapahtuisi oikeassa järjestyksessä. Ai niin, myös vakio

      var speed = 15;

      on määritelty javascript tiedoston alkuun, antamaan vieritysnopeuden.

      • Anonyymi

        Tein oheisen testin omassa localhostissa ja hyvinhän tuo toimi:

        <body onload="pageScroll()">
        //your content
        <script>
        var speed = 15;
        function pageScroll(){
        window.scrollBy(0,100);
        scrolldelay = setTimeout(pageScroll,speed);
        let Stop = document.documentElement.scrollHeight;
        let KurPos = window.innerHeight window.scrollY;
        if (KurPos == Stop){
        clearTimeout(scrolldelay);
        window.scroll(0,0);
        alert("Tehtävä suoritettu");
        }
        }
        </script>

        Selain rullaa ensin koko sivun sisällön läpi ja lopuksi näyttää hälyn "Tehtävä suoritettu!".


      • Anonyymi
        Anonyymi kirjoitti:

        Tein oheisen testin omassa localhostissa ja hyvinhän tuo toimi:

        <body onload="pageScroll()">
        //your content
        <script>
        var speed = 15;
        function pageScroll(){
        window.scrollBy(0,100);
        scrolldelay = setTimeout(pageScroll,speed);
        let Stop = document.documentElement.scrollHeight;
        let KurPos = window.innerHeight window.scrollY;
        if (KurPos == Stop){
        clearTimeout(scrolldelay);
        window.scroll(0,0);
        alert("Tehtävä suoritettu");
        }
        }
        </script>

        Selain rullaa ensin koko sivun sisällön läpi ja lopuksi näyttää hälyn "Tehtävä suoritettu!".

        Joo, noin se kyllä toimii, mutta kun tämä tulee olemaan osa muuta ohjelmaa, jossa tuo;

        alert("Tehtävä suoritettu");

        korvataan joukolla muita funktioita ja tapahtumia. Eli ei voida yhdistää tuolla tavalla. Täytyisi pystyä säilyttämään tuo kutsurakenne

        function start() {
        pageScroll();
        alert('Tehtävä, on suoritettu!');
        }


      • Anonyymi
        Anonyymi kirjoitti:

        Joo, noin se kyllä toimii, mutta kun tämä tulee olemaan osa muuta ohjelmaa, jossa tuo;

        alert("Tehtävä suoritettu");

        korvataan joukolla muita funktioita ja tapahtumia. Eli ei voida yhdistää tuolla tavalla. Täytyisi pystyä säilyttämään tuo kutsurakenne

        function start() {
        pageScroll();
        alert('Tehtävä, on suoritettu!');
        }

        Siinä tapauksessa jQuery voisi olla avuksi:

        <body>
        //your content
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
        <script>
        var speed = 15;
        function pageScroll(){
        window.scrollBy(0,100);
        scrolldelay = setTimeout(pageScroll,speed);
        let Stop = document.documentElement.scrollHeight;
        let KurPos = window.innerHeight window.scrollY;
        if (KurPos >= Stop){
        clearTimeout(scrolldelay);
        window.scroll(0,0);
        alert("Tehtävä suoritettu!");
        }
        }
        $(document).ready(function(){
        pageScroll();
        })
        </script>

        Tuosta muuntamalla omiin tarpeisiin... ehkä...


      • Anonyymi
        Anonyymi kirjoitti:

        Siinä tapauksessa jQuery voisi olla avuksi:

        <body>
        //your content
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
        <script>
        var speed = 15;
        function pageScroll(){
        window.scrollBy(0,100);
        scrolldelay = setTimeout(pageScroll,speed);
        let Stop = document.documentElement.scrollHeight;
        let KurPos = window.innerHeight window.scrollY;
        if (KurPos >= Stop){
        clearTimeout(scrolldelay);
        window.scroll(0,0);
        alert("Tehtävä suoritettu!");
        }
        }
        $(document).ready(function(){
        pageScroll();
        })
        </script>

        Tuosta muuntamalla omiin tarpeisiin... ehkä...

        Mutta tuossahan on edelleen tuon

        alert("Tehtävä suoritettu!");

        kutsun suorittajana on se vieritys funktio, eikä sitä saisi kutsua tuolla vieritys funktion sisältä, koska se tullaan korvaamaan vielä tuntemattomalla määrällä muita funktioita ja tapahtumia.


      • Anonyymi
        Anonyymi kirjoitti:

        Mutta tuossahan on edelleen tuon

        alert("Tehtävä suoritettu!");

        kutsun suorittajana on se vieritys funktio, eikä sitä saisi kutsua tuolla vieritys funktion sisältä, koska se tullaan korvaamaan vielä tuntemattomalla määrällä muita funktioita ja tapahtumia.

        Rakenna joku kikkakolmonen tyyliin "piilotettu div" jonka arvoa muuttamalla triggeroit sen alertin siinä vaiheessa kun se systeemisi tarpeisiin sopii. Minulle ei avaudu kertomuksestasi tarpeesi niin että pystyisin hahmottamaan sitä scripteiksi asti eli täältä tähän.


    • Anonyymi

      Promisen palauttavat funktiot on nykyään kätevin niputtaa async/await -parilla. Silloin ne toimivat kuten "perinteiset" synkroniset funktiot.

      https://javascript.info/async-await

      • Anonyymi

        Kävin katsomassa, vaikuttaa oikealta mutta soveltaminen vaatii tarkempaa perehtymistä, palaan asiaan.


      • Anonyymi
        Anonyymi kirjoitti:

        Kävin katsomassa, vaikuttaa oikealta mutta soveltaminen vaatii tarkempaa perehtymistä, palaan asiaan.

        Tunnin kohta sohrannut, ja vain virheitä pukkaa, eikö löytyisi helpompaa keinoa.


    • Anonyymi

      On tämä Javascript ihmeellinen ympäristö, kun ei suorita tehtäviä, annetussa järjestyksessä.

    • Anonyymi

      Mitä, hittoa, https://pastebin.com/ linkkiä ei saa laittaa, vai tuliko liian vähän muuta tekstiä. Eli yritin tuota luultavasti esimerkkiä ohjata tuonne pastebin sivulle jos eivät tänne anna laittaa, mutta poistettiin. Nyt laita tekstiä enemän jotta näkee onko tuokin nyt sitten kielletty, ei toinna lukea tästä eteen päin.

      Jopa luovien näkemysten huomiointi näyttelee keskeistä osaa pohdittaessa ongelmanratkaisukyvyn huipentumaa. On hyvin vaikea johdatella asioita siten, että emotionaalinen perikato auttaa käyttäjää ymmärtämään nykysukupolvia henkisesti rasittavaa elämäntyyliä. Eräitä yksityiskohtia lukuunottamatta normaali substanssi pakottaa kohderyhmää huomioimaan huomaamattomia haittatekijöitä.

      Todellisuudessa looginen asennoituminen avaa itse kullekin tiedon ja ymmärryksen portin kohti erilaisissa laitoksissa tapahtuvaa valmistusta. Universaalista näkökulmasta katsoen tarveharkintadialogi ennakoi osaltaan vastuuntuntoisten yhteistyökumppaneiden aatteellisia intressejä.

      • Anonyymi

        Jos menet edellä kerrotun pb:n saitille ja lisäät osoitteen perään

        /y4tcB75Y

        niin löydät yhden simppelin esimerkkitoteutuksen missä ajastimella viivästytetään viestin näyttämistä kunnes edellinen skripti on loppuun ajettu.


      • Anonyymi
        Anonyymi kirjoitti:

        Jos menet edellä kerrotun pb:n saitille ja lisäät osoitteen perään

        /y4tcB75Y

        niin löydät yhden simppelin esimerkkitoteutuksen missä ajastimella viivästytetään viestin näyttämistä kunnes edellinen skripti on loppuun ajettu.

        Ja, kyllähän minä menin.

        Sehän toimi, eikä ollenkaan ollut riippuvainen asetetusta ajasta, riitti kunhan se oli olemassa. Tässä on mielenkiintoista se että minä jo testasin saman, mutta puhtaasti HTML ja JavaScript yhdistelmänä. Sinulla tuo oli PHP, HTML ja JavaScript yhdistelmä, jossa tiedostomuotona *.php.

        Nyt minun pitää testata tuota korvaamalla tuo PHP JavaScript osuudella, ja katso toimiiko puhtaasti HTML JavaScript yhdistelmänä jossa tiedostomuoto *.html. Palaan asiaan, tuonnempana.


      • Anonyymi
        Anonyymi kirjoitti:

        Ja, kyllähän minä menin.

        Sehän toimi, eikä ollenkaan ollut riippuvainen asetetusta ajasta, riitti kunhan se oli olemassa. Tässä on mielenkiintoista se että minä jo testasin saman, mutta puhtaasti HTML ja JavaScript yhdistelmänä. Sinulla tuo oli PHP, HTML ja JavaScript yhdistelmä, jossa tiedostomuotona *.php.

        Nyt minun pitää testata tuota korvaamalla tuo PHP JavaScript osuudella, ja katso toimiiko puhtaasti HTML JavaScript yhdistelmänä jossa tiedostomuoto *.html. Palaan asiaan, tuonnempana.

        php-palanen on mukana vain siksi että sillä voi helposti säätää testailusivun pituutta ja havaita että se kuittiviesti tulee todellakin vasta lopuksi oli sivulla rivejä 100 vaiko 2000 tai ylikin. Kyseisen osion voi huoletta korvata perus-html -tekstillä ja lopputulos on tasan sama.


      • Anonyymi
        Anonyymi kirjoitti:

        php-palanen on mukana vain siksi että sillä voi helposti säätää testailusivun pituutta ja havaita että se kuittiviesti tulee todellakin vasta lopuksi oli sivulla rivejä 100 vaiko 2000 tai ylikin. Kyseisen osion voi huoletta korvata perus-html -tekstillä ja lopputulos on tasan sama.

        No niin, muutin PHP koodin JavaScript koodiksi. Tein myös paremin tilannetta kuvaavat viestidialogien sanomat, että voisit vielä ratkaista tämän jäljelle jääneen ongelman.

        https://pastebin.com/K4za064n

        ROPOLLE LINKIN VUOKSI
        Jopa luovien näkemysten huomiointi näyttelee keskeistä osaa pohdittaessa ongelmanratkaisukyvyn huipentumaa. Täytyy siitä huolimatta että maailmalla on viime aikoina tapahtunut paljon, todeta, että emotionaalinen perikato parantaa viimeaikaisia absurdeja väittämiä.

        Me emme tiedä mitä tapahtuu todella, jos yleisesti suositeltava toimintamalli järkeistää käsitystämme kyseisestä asiakokonaisuudesta, mihin tavallaan liittyy myös järjestelmän ulkopuolelle jääneitä epäonnistuneita prosesseja. Jos vertailemme lyhyesti asiaankuuluvia ilmiöitä, huomaamme, että organisaation uusi toimintakaavio asettaa tahomme tukalaan tilanteeseen ajateltaessa hyvinvoivan yhteiskunnan rinnalle muodostuneita epäkohtia.

        Täytyy siitä huolimatta että maailmalla on viime aikoina tapahtunut paljon, todeta, että normaali substanssi ennakoi osaltaan peräänkuulutettua lakonisuutta. Vaikka osaltamme onkin saatettu syyllistyä laiminlyönteihin, voidaan taholtamme kuitenkin todeta, että ratifioituja ominaisuuksia omaava vaihtoehto pakottaa kohderyhmää huomioimaan viimeaikaisia absurdeja väittämiä.


      • Anonyymi
        Anonyymi kirjoitti:

        No niin, muutin PHP koodin JavaScript koodiksi. Tein myös paremin tilannetta kuvaavat viestidialogien sanomat, että voisit vielä ratkaista tämän jäljelle jääneen ongelman.

        https://pastebin.com/K4za064n

        ROPOLLE LINKIN VUOKSI
        Jopa luovien näkemysten huomiointi näyttelee keskeistä osaa pohdittaessa ongelmanratkaisukyvyn huipentumaa. Täytyy siitä huolimatta että maailmalla on viime aikoina tapahtunut paljon, todeta, että emotionaalinen perikato parantaa viimeaikaisia absurdeja väittämiä.

        Me emme tiedä mitä tapahtuu todella, jos yleisesti suositeltava toimintamalli järkeistää käsitystämme kyseisestä asiakokonaisuudesta, mihin tavallaan liittyy myös järjestelmän ulkopuolelle jääneitä epäonnistuneita prosesseja. Jos vertailemme lyhyesti asiaankuuluvia ilmiöitä, huomaamme, että organisaation uusi toimintakaavio asettaa tahomme tukalaan tilanteeseen ajateltaessa hyvinvoivan yhteiskunnan rinnalle muodostuneita epäkohtia.

        Täytyy siitä huolimatta että maailmalla on viime aikoina tapahtunut paljon, todeta, että normaali substanssi ennakoi osaltaan peräänkuulutettua lakonisuutta. Vaikka osaltamme onkin saatettu syyllistyä laiminlyönteihin, voidaan taholtamme kuitenkin todeta, että ratifioituja ominaisuuksia omaava vaihtoehto pakottaa kohderyhmää huomioimaan viimeaikaisia absurdeja väittämiä.

        Latasin muokatun version aamullisen päälle - samalla pb:n koodilla siis.
        Olisiko se taas askeleen lähempänä päämäärää.


      • Anonyymi
        Anonyymi kirjoitti:

        Latasin muokatun version aamullisen päälle - samalla pb:n koodilla siis.
        Olisiko se taas askeleen lähempänä päämäärää.

        No joo, eikö tuohon ole muuta ratkaisua kuin Interval -viivyttäminen jokaiselle suoritettavalle tehtävälle, että ne tapahtuisi ajallisesti oikeassa järjestyksessä. Tuntus että pakkohan siihen olisi olla olemassa jotain muutakin. Pitäisiköhän yrittää JQuery puolelta hakea, kun natiivi JavaScript ei kykene suoritusjärjestystä säilyttämään.


      • Anonyymi
        Anonyymi kirjoitti:

        No joo, eikö tuohon ole muuta ratkaisua kuin Interval -viivyttäminen jokaiselle suoritettavalle tehtävälle, että ne tapahtuisi ajallisesti oikeassa järjestyksessä. Tuntus että pakkohan siihen olisi olla olemassa jotain muutakin. Pitäisiköhän yrittää JQuery puolelta hakea, kun natiivi JavaScript ei kykene suoritusjärjestystä säilyttämään.

        Suoritusjärjestys on ihan oikea. Eri asiat vaan valmistuvat eri aikoina.

        Opettele vaan se async/await -tapa. Silloin ohjelmat eivät "jauha" turhaan, ja seuraava funktio aloitetaan vasta edellisen päätyttyä.


      • Anonyymi
        Anonyymi kirjoitti:

        Suoritusjärjestys on ihan oikea. Eri asiat vaan valmistuvat eri aikoina.

        Opettele vaan se async/await -tapa. Silloin ohjelmat eivät "jauha" turhaan, ja seuraava funktio aloitetaan vasta edellisen päätyttyä.

        Me pyöriteltiin koko ajan setInterval() funktiota joka on tarkoitettu jaksottamaan tehtäviä tietyin väliajoin, esimerkiksi kellon sekuntiviisaria pitäisi siirtää toistuvasti eri asentoon sekunnin välin;

        setInterval(MoveClockPointer(), 1000);

        Mutta kun haluat asettaa herätyksen tunnin päähän tästä hetkestä, tulisi käyttää;

        setTimeout(WakeUp(), 3600000);

        Eli näihin ajastamistarpeisiin on ainakin kaksi natiivia funktiota olemassa, mutta eipä taida asiaa auttaa yhtään.


      • Anonyymi
        Anonyymi kirjoitti:

        Me pyöriteltiin koko ajan setInterval() funktiota joka on tarkoitettu jaksottamaan tehtäviä tietyin väliajoin, esimerkiksi kellon sekuntiviisaria pitäisi siirtää toistuvasti eri asentoon sekunnin välin;

        setInterval(MoveClockPointer(), 1000);

        Mutta kun haluat asettaa herätyksen tunnin päähän tästä hetkestä, tulisi käyttää;

        setTimeout(WakeUp(), 3600000);

        Eli näihin ajastamistarpeisiin on ainakin kaksi natiivia funktiota olemassa, mutta eipä taida asiaa auttaa yhtään.

        Joo, intervalli kutsuu samaa funktiota yhä uudelleen, kunnes ajastin lopetetaan. Timeout suorittaa funktion puolestaan vain kerran.

        Tässä esimerkissä sekuntikello käy seuraavaan tasaminuuttiin, jonka jälkeen ajastin poistetaan.

        const odota = () => {
        const ajastin = setInterval(() => {
        const aika = new Date();
        process.stdout.clearLine();
        process.stdout.write('\r' aika.toLocaleTimeString());
        if(aika.getSeconds() == 0) lopeta();
        }, 1000);
        const lopeta = () => {
        clearInterval(ajastin);
        console.log();
        }
        }
        odota();


      • Anonyymi
        Anonyymi kirjoitti:

        Joo, intervalli kutsuu samaa funktiota yhä uudelleen, kunnes ajastin lopetetaan. Timeout suorittaa funktion puolestaan vain kerran.

        Tässä esimerkissä sekuntikello käy seuraavaan tasaminuuttiin, jonka jälkeen ajastin poistetaan.

        const odota = () => {
        const ajastin = setInterval(() => {
        const aika = new Date();
        process.stdout.clearLine();
        process.stdout.write('\r' aika.toLocaleTimeString());
        if(aika.getSeconds() == 0) lopeta();
        }, 1000);
        const lopeta = () => {
        clearInterval(ajastin);
        console.log();
        }
        }
        odota();

        Tässä vielä tapa miten voi käyttää asyncin ja awaitin kanssa.

        const odotaSekunti = () =>
        new Promise(funktio => setTimeout(funktio, 1000));

        const odotaPariKertaa = async () => {
        console.log('Nolla sekuntia mennyt');
        await odotaSekunti();
        console.log('Sekunti mennyt');
        await odotaSekunti();
        console.log('Toinen sekunti mennyt');
        }

        odotaPariKertaa();


      • Anonyymi
        Anonyymi kirjoitti:

        Joo, intervalli kutsuu samaa funktiota yhä uudelleen, kunnes ajastin lopetetaan. Timeout suorittaa funktion puolestaan vain kerran.

        Tässä esimerkissä sekuntikello käy seuraavaan tasaminuuttiin, jonka jälkeen ajastin poistetaan.

        const odota = () => {
        const ajastin = setInterval(() => {
        const aika = new Date();
        process.stdout.clearLine();
        process.stdout.write('\r' aika.toLocaleTimeString());
        if(aika.getSeconds() == 0) lopeta();
        }, 1000);
        const lopeta = () => {
        clearInterval(ajastin);
        console.log();
        }
        }
        odota();

        Tässä taas Interval-funktio on oikein peruselementissään, nimittäin kun ajat tuon consolissa (Ctrl Shift J), näet kellon ajan selaimen välilehden otsakkeena.

        var myVar = setInterval(myTimer, 1000);
        function myTimer() {
        var d = new Date();
        var t = d.toLocaleTimeString();
        document.title = t;
        }


      • Anonyymi
        Anonyymi kirjoitti:

        Tässä taas Interval-funktio on oikein peruselementissään, nimittäin kun ajat tuon consolissa (Ctrl Shift J), näet kellon ajan selaimen välilehden otsakkeena.

        var myVar = setInterval(myTimer, 1000);
        function myTimer() {
        var d = new Date();
        var t = d.toLocaleTimeString();
        document.title = t;
        }

        Tuo pika näppäin yhdistelmä (Ctrl Shift J) saattaa olla vain tämän Chromium selaimen ominaisuuksia, ehkä se on muissa F12 ja sitten valitaan Console -välilehti käsin.


      • Anonyymi
        Anonyymi kirjoitti:

        Tässä vielä tapa miten voi käyttää asyncin ja awaitin kanssa.

        const odotaSekunti = () =>
        new Promise(funktio => setTimeout(funktio, 1000));

        const odotaPariKertaa = async () => {
        console.log('Nolla sekuntia mennyt');
        await odotaSekunti();
        console.log('Sekunti mennyt');
        await odotaSekunti();
        console.log('Toinen sekunti mennyt');
        }

        odotaPariKertaa();

        Tuossakin esimerkissäsi odotetaan ajan täyttymistä että päästää tehtävä suorittamaan, mutta tarve olisi odottaa tehtävän päättymistä ja vielä niin että se ei ole kiinni siitä kuinka kauan se vie, ja odottaessa valmistumista, ei ohjelma saisi edetä ollenkaan.

        Tässä valossa, ei ole mitään huolta siitä että selainsovellukset valtaisivat työpöytäsovellusten paikan. Paljon pystyy tekemään, mutta erittäin tärkeitä ominaisuuksia puuttuu, ja nähtävästi kyse on tietoturvallisuuden säilyttämisestä kun näitä puutteita ei korjata.


      • Anonyymi
        Anonyymi kirjoitti:

        Tuossakin esimerkissäsi odotetaan ajan täyttymistä että päästää tehtävä suorittamaan, mutta tarve olisi odottaa tehtävän päättymistä ja vielä niin että se ei ole kiinni siitä kuinka kauan se vie, ja odottaessa valmistumista, ei ohjelma saisi edetä ollenkaan.

        Tässä valossa, ei ole mitään huolta siitä että selainsovellukset valtaisivat työpöytäsovellusten paikan. Paljon pystyy tekemään, mutta erittäin tärkeitä ominaisuuksia puuttuu, ja nähtävästi kyse on tietoturvallisuuden säilyttämisestä kun näitä puutteita ei korjata.

        Juu se oli vain "väkisin väännetty" esimerkiksi, kun joku valitteli ettei "pysy järjestyksessä".

        Palvelinpuolen javascriptillä asiat tehdään yleensä asynkronisesti, jottei tarvitse jäädä odottelemaan jonkun asian valmistumista. Eli kun homma valmistuu, niin kutsutaan callback-funktiota jne. Mutta nykyään pystyy async/await -yhdistelmällä käyttämään promise-tyylisiä juttuja helpommin.


      • Anonyymi
        Anonyymi kirjoitti:

        Tuossakin esimerkissäsi odotetaan ajan täyttymistä että päästää tehtävä suorittamaan, mutta tarve olisi odottaa tehtävän päättymistä ja vielä niin että se ei ole kiinni siitä kuinka kauan se vie, ja odottaessa valmistumista, ei ohjelma saisi edetä ollenkaan.

        Tässä valossa, ei ole mitään huolta siitä että selainsovellukset valtaisivat työpöytäsovellusten paikan. Paljon pystyy tekemään, mutta erittäin tärkeitä ominaisuuksia puuttuu, ja nähtävästi kyse on tietoturvallisuuden säilyttämisestä kun näitä puutteita ei korjata.

        Tuossa on yksi esimerkki fetchin käytöstä, joka hakee jotain netistä. Kuten näet, niin koodi lyhenee async/awaitilla aika paljon siitä, mitä oli aiemmin pelkkien promisien kanssa.

        https://dev.to/shoupn/javascript-fetch-api-and-using-asyncawait-47mp


      • Anonyymi
        Anonyymi kirjoitti:

        Tuossa on yksi esimerkki fetchin käytöstä, joka hakee jotain netistä. Kuten näet, niin koodi lyhenee async/awaitilla aika paljon siitä, mitä oli aiemmin pelkkien promisien kanssa.

        https://dev.to/shoupn/javascript-fetch-api-and-using-asyncawait-47mp

        Niin näkyy tekevän, ei se tuostaan voi enää lyhentyä. github.com esimerkit näyttivät toimivan. Tuohonkin täytyy perehtyä, onko tuosta await ja async yhdistelmästä apua sivun aukaisussa, jossa on aina keksittävä jonkinlainen viivytys siksi aikaa kun sivu kerkiää valmistua kokonaan.


      • Anonyymi
        Anonyymi kirjoitti:

        Niin näkyy tekevän, ei se tuostaan voi enää lyhentyä. github.com esimerkit näyttivät toimivan. Tuohonkin täytyy perehtyä, onko tuosta await ja async yhdistelmästä apua sivun aukaisussa, jossa on aina keksittävä jonkinlainen viivytys siksi aikaa kun sivu kerkiää valmistua kokonaan.

        Window.onload taitaa riittää siihen. https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onload


      • Anonyymi

      • Anonyymi
        Anonyymi kirjoitti:

        document.onload() ja/tai window.onload() tapahtuma käynnistyy kun jotain verkko-osoitetta tavoitellaan, se ei kerro koska latautuminen on tapahtunut kokonaan.

        Väärin. Ks. linkki.


      • Anonyymi
        Anonyymi kirjoitti:

        document.onload() ja/tai window.onload() tapahtuma käynnistyy kun jotain verkko-osoitetta tavoitellaan, se ei kerro koska latautuminen on tapahtunut kokonaan.

        window.onload() tarkoittaa että ruudullinen renderöitävää tavaraa on ladattu ja se voidaan näyttää.


      • Anonyymi
        Anonyymi kirjoitti:

        Väärin. Ks. linkki.

        Katsoinhan minä, ja hiukan testailinkin suurilla taustakuvilla, no nyt siinä kävi niin että tuota taidat olla oikeassa. Tässä jossain vaiheessa oli tarkoitus luoda jonkinlainen selain testi, johon sisältyy kahden selaimen yhtäaikainen verkkosivujen läpi käynti. Jossa kumpikin latailee sivuja, odottaa sen valmistumista, sulkee sivun ja hakee seuraavan sivun ja niin edelleen. Kiinnosti kumpi jää toisen jalkoihin, kun pistetään koneellista käskyttämistä mukaan kuvioihin, aikaa mitaten. Se projekti unohtui, mutta silloin kai sain päähäni ettei tuo;

        window.onload = (event) => {};

        olisi se jonka antamaan aikaan voisi pohjata kokonaisaikaa sivujen latauksista. Muistaakseni selaimien cache eli vielä vaikka window.onload sanoikin sivun valmistuneen. En muista mihinkä se projekti unohtui, ehkä kiinnostuin jostakin muusta enemmän. Vieläkin kalvaa epäilys miten asia on, vaikka noinkin luotettavalta sivulta asia vahvistui.


    • Anonyymi

      Viestissä 28.09.2020 07:31 mainittua testiä muokattu Pb:n sivulle vielä kerran.

      Yritin async/await -kikoilla säätää loppukuittausta ilman timeoutteja, mutta osoittautui kyllä mahdottomaksi tehtäväksi. Skriptit taustalla valmistuu niin paljon nopeammin kuin testauksessa ollut ruudun/näytön vierityksen päivitys. Oma lopputulema on että alert pitää joka tapauksessa laittaa setInterval -tutkintaan vaikka sitä edeltävät funktiot ajettaisiinkin async/await -määritysten mukaisessa järjestyksessä.

      Esimerkissä "promiset" ajetuista funktioista tulee konsoliin ihan niin kuin pitääkin.

    Ketjusta on poistettu 2 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Katso: Ohhoh! Miina Äkkijyrkkä sai käskyn lähteä pois Farmi-kuvauksista -Kommentoi asiaa: "En ole.."

      Tämä oli shokkiyllätys. Oliko tässä kyse tosiaan siitä, että Äkkijyrkkä sanoi asioita suoraan vai mistä.... Tsemppiä, Mi
      Tv-sarjat
      130
      5045
    2. Voi kun mies rapsuttaisit mua sieltä

      Saisit myös sormiisi ihanan tuoksukasta rakkauden mahlaa.👄
      Ikävä
      32
      3177
    3. Haluan jutella kanssasi Nainen

      Olisiko jo aika tavata ja avata tunteemme...On niin paljon asioita joihin molemmat ehkä haluaisimme saada vastaukset...O
      Ikävä
      16
      1827
    4. Poliisiauto Omasp:n edessä parkissa

      Poliisiauto oli parkissa monta tuntia Seinäjoen konttorin edessä tänään. Haettiinko joku tai jotain pankista tutkittavak
      Seinäjoki
      22
      1790
    5. Onko mies niin,

      että sinulle ei riitä yksi nainen? Minulle suhde tarkoittaa sitoutumista, tosin eihän se vankila saa olla kummallekaan.
      Tunteet
      19
      1655
    6. Voitasko leikkiä jotain tunnisteleikkiä?

      Tietäisi ketä täällä käy kaipaamassa.. kerro jotain mikä liittyy sinuun ja häneen eikä muut tiedä. Vastaan itsekin kohta
      Ikävä
      71
      1501
    7. Tietysti jokainen ansaitsee

      Hän varmasti ansaitsee vain parasta ja sopivinta tietenkin, suon sen onnen hänelle enemmän kuin mielelläni. Aika on nyt
      Ikävä
      11
      1275
    8. Armi Aavikko Malmin hautausmaa

      Haudattiinko Armi arkussa Malmin hautausmaalle vai tuhkattiinko hänet? Kuka tietää asiasta oikein?
      Kotimaiset julkkisjuorut
      11
      1266
    9. Miksi näin?

      Miksi vihervassut haluaa maahan porukkaa jonka pyhä kirja kieltää sopeutumisen vääräuskoisten keskuuteen? Näin kotoutumi
      Maailman menoa
      19
      1257
    10. Haluisin suudella ja huokailla

      ja purra kaulaasi ja rakastella sinua. Haluisin puristella rintojasi ja pakaroitasi. Ei sinulla taida olla kuitenkaan ni
      Ikävä
      16
      1247
    Aihe