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

237

    Vastaukset 34

    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. Venäjä alkaa iskemään Suomen politiikkaan.

      Tässä on valtion ja koko länsiliiton päämiehet varoitelleet, että Venäjä alkaa talven aikana taas iskemään hybridisesti.
      Sinkut
      237
      1511
    2. Hallituksen järjestämä spektaakkeli tuo vessanpyttykeissi

      Että olisi kymmenien kansanedustajien kodeissa käyty ihan tuosta vaan, eikä kukaan kansanedustaja kerro niin käyneen, va
      Maailman menoa
      287
      1089
    3. Miltä tuntuu vanhempi nainen olla

      Pihkassa huomattavasti nuorempaan kolliin joka on uskollinen ja kiltti ja tottelee joka asiaa ja tykkää pussailla ja pan
      Ikävä
      94
      844
    4. Sysmän "ilon päivä"

      Ja taas palaa hirveä määrä verorahoja, ihan turhaan soopaan. Eikö nämä jotka kuntapolitiikassa valittavat ja tuhoaa vaan
      Sysmä
      68
      792
    5. Uskon, että saataisiin kaikki selvitettyä

      Mutta yhteys on jäissä, minä olen jäässä, enkä osaa tai uskalla enää lähestyä. Se vaan on niin. Naiselta Jos ei ole hyvä
      Ikävä
      48
      733
    6. Pakko myöntää mies

      En mä aina ihan rehellinen sulle ollut
      Ikävä
      120
      643
    7. Joka ilta mietin

      sua❤️Mitä teet, missä meet? Kaipaatko yhtään? Yön tullen toivotan mielessäni sulle hyvää yötä ja aamuisin huomenet. Joka
      Ikävä
      27
      595
    8. Riitastako pelastaja

      Riitta jätti hakemuksen. Hyvä niin. On ainakin yksi mistä ottaa. Pertsa ei taida aikuistua koskaan ja Pekka hoiteli silt
      Kemijärvi
      34
      584
    9. Timo Vornanen.

      On siinäkin yksi täystampio. Eipä ihme, että persukannattajat sen eduskuntaan äänestikin.
      Maailman menoa
      49
      555
    10. Luottamus

      Luotan vain siihen mitä tapahtuu IRL. Anonyymipalstan vihjailut eivät merkitse minulle mitään.
      Ikävä
      94
      525
    11. mielikuva

      Mitä luulet hänen ajattelevan sinusta?
      Ikävä
      41
      511
    12. Miten nainen kohteli sinua?

      😋
      Ikävä
      32
      491
    13. Kadutko mies sitä miten reagoit?

      ..siihen sotkuun, jonka jälkeen mikään ei ole ollut kuin ennen. 🥺
      Ikävä
      48
      485
    14. 35
      471
    15. Mikä kaivatullesi

      On tärkeintä elämässään?
      Ikävä
      32
      454
    16. Millaisen talvitakin haluaisit?

      Talveen vielä aikaa, mutta talvitakit tulleet kauppoihin. Millainen olisi unelmiesi talvitakki? Itse tykkäisin jostain
      Sinkut
      77
      451
    17. Olisitko nainen ihan nolona

      Jos et saisikaan sitä nousemaan...
      Sinkut
      77
      422
    18. Onko kahvila Retro samalla pub???

      Netin mukaan anniskeluoikeudet. Käykö tuolla kaljoitteluporukkaa? Onko iltaviihdettä? Olen muuttamassa marraskuussa Kuhm
      Kuhmo
      8
      417
    19. Oletteko täyttä sataa?

      Muuta etunimienne kirjaimet numeroiksi. Esim. Mia ja Risto siitä tulee 8 numeroa. Laske ne yhteen . Paljonko tulee?
      Ikävä
      33
      400
    20. Iivari esittää poliisin tutkintaa

      Siikalatvan kunnanjohtaja Pekka Iivari on pannu ison pyörän liikkeelle. Entinen Kemijärven historian lyhimmän kaupunginj
      Kemijärvi
      21
      391
    Aihe