Sam: Zuverlässiger Input dass Seite komplett geladen?

Guten Abend.

Ich hätte eine Frage: und zwar würde ich gerne einen Listener einbinden, der erst feuert, wenn eine Seite komplett (inklusive aller Sources, daher auch Ton und Bild) geladen ist.

Bin dazu auf die DOCs dieser Seite gestoßen, https://wiki.selfhtml.org/wiki/JavaScript/DOM/Event/load .

Dort steht:

In vielen Browsern wird load erst ausgeführt, wenn alle Bilder geladen sind.

Auf https://www.mediaevent.de/javascript/onload.html steht sogar:

Aber beim onload-Event sind nicht unbedingt alle Bilder vollständig geladen, denn der Browser lädt Bilder asynchron.

(Gilt das auch für andere externe Sourcen wie z.B. für mp3 Dateien?)

Muss ich jetzt für jedes Medienelement bzw. Bild (aber auch vielleicht Ton in Form von mp3) einen eigenen onload Listener einfügen, oder gibt es da eine bessere (anerkannte?) Methode?

Dank euch!

Sam

  1. Hi there,

    (Gilt das auch für andere externe Sourcen wie z.B. für mp3 Dateien?)

    Nein, weil mp3-Dateien oder ähnliches normalerweise vom Browser nicht vorgeladen werden (ausser, Du spielst die MP3-Datei automatisch ab, aber das wird mittlerweile ohnehin von den meisten Browsern unterbunden). Du kannst sie natürlich durch Javascript vorladen lassen, das hat dann aber mit dem onload-Event nichts zu tun.

    Muss ich jetzt für jedes Medienelement bzw. Bild (aber auch vielleicht Ton in Form von mp3) einen eigenen onload Listener einfügen, oder gibt es da eine bessere (anerkannte?) Methode?

    Wie gesagt, Mediendaten werden idR erst durch eine irgendeine Useraufforderung geladen, deswegen funktioniert die onload-Methode auf die Gesamtseite da nicht...

  2. Ich hätte eine Frage: und zwar würde ich gerne einen Listener einbinden, der erst feuert, wenn eine Seite komplett (inklusive aller Sources, daher auch Ton und Bild) geladen ist.

    Ich hoffe, dass genau das nicht geht. Grund: Sowas würde regelmäßig von Werbetreibenden, die richtige nerven wollen, missbraucht.

    1. Hallo,

      Ich hätte eine Frage: und zwar würde ich gerne einen Listener einbinden, der erst feuert, wenn eine Seite komplett (inklusive aller Sources, daher auch Ton und Bild) geladen ist.

      Ich hoffe, dass genau das nicht geht. Grund: Sowas würde regelmäßig von Werbetreibenden, die richtige nerven wollen, missbraucht.

      es besteht ein Unterschied zwischen dem Laden von Medienressourcen und deren Abspielen. Was die Browser heutzutage in der Regel[1] unterbinden, ist das automatische Abspielen ohne Benutzer-Eingriff, nicht aber das Laden der Audio- oder Video-Daten.

      Herkömmliche Bilder werden meines Wissens beim load-Event beachtet (also load feuert erst, wenn alle Bilder geladen oder das Laden endgültig gescheitert ist), sofern sie im HTML referenziert sind. Bilder, die per CSS referenziert oder per Javascript angefordert werden, sind da außen vor.

      Live long and pros healthy,
       Martin

      --
      Hunde, die bellen, beißen nicht.
      Jedenfalls nicht gleichzeitig.

      1. Irgendwie schaffen es manche doch hin und wieder noch, sich an den Browser-Beschränkungen vorbeizumogeln. Selten, aber gelegentlich ärgere ich mich über ungefragt losplärrenden Sound. ↩︎

      1. Hi there,

        Du browst Dich durchs Internet ohne Blocker???

        1. Hallo,

          Irgendwie schaffen es manche doch hin und wieder noch, sich an den Browser-Beschränkungen vorbeizumogeln. Selten, aber gelegentlich ärgere ich mich über ungefragt losplärrenden Sound.

          Du browst Dich durchs Internet ohne Blocker???

          oh nein, mitnichten. Ich blocke sogar zweistufig. Erstens mit einem lokalen DNS im LAN, der mehrere hundert bekannte Hostnamen von Ad-Servern auf 127.0.0.1 auflöst. Das bringt schon sehr viel. Zusätzlich noch Adblock Plus (bzw. Adblock Latitude, je nach Browser).

          Und trotzdem flutscht ab und zu einer durch.

          Live long and pros healthy,
           Martin

          --
          Hunde, die bellen, beißen nicht.
          Jedenfalls nicht gleichzeitig.
          1. Hi there,

            Du browst Dich durchs Internet ohne Blocker???

            oh nein, mitnichten. Ich blocke sogar zweistufig. Erstens mit einem lokalen DNS im LAN, der mehrere hundert bekannte Hostnamen von Ad-Servern auf 127.0.0.1 auflöst. Das bringt schon sehr viel. Zusätzlich noch Adblock Plus (bzw. Adblock Latitude, je nach Browser).

            Ah ja, ich verwende Pi-Hole auf einem Raspi als DNS-Resolver, das erledigt das Updaten von "bösen" Seiten für mich. Das Problem ist halt, daß Du dann auf den Seiten, die nachfragen, ob bestimmte Ad-Contents auch geladen wurden, auch noch Javascript deaktivieren mußt. Aber so ist halt das Internet-Leben in den Zwanziger Jahren des 21. Jahrhunderts...

            1. Hallo,

              Du browst Dich durchs Internet ohne Blocker???

              oh nein, mitnichten. Ich blocke sogar zweistufig. Erstens mit einem lokalen DNS im LAN, der mehrere hundert bekannte Hostnamen von Ad-Servern auf 127.0.0.1 auflöst. Das bringt schon sehr viel. Zusätzlich noch Adblock Plus (bzw. Adblock Latitude, je nach Browser).

              Ah ja, ich verwende Pi-Hole auf einem Raspi als DNS-Resolver

              kenn ich auch, das ist dnsmasq als technische Grundlage, plus ein "fancy" GUI und automatischem Update. Bei mir läuft dnsmasq als reiner Dienst ohne GUI.

              Das Problem ist halt, daß Du dann auf den Seiten, die nachfragen, ob bestimmte Ad-Contents auch geladen wurden, auch noch Javascript deaktivieren mußt.

              Nö, warum? Wenn mich irgendeine Site anpflaumt, ich solle meinen Ad-Blocker deaktivieren und mir andernfalls den Content verweigert, dann dreh ich mich halt um und bin weg. Kaum ein Webangebot ist so einzigartig, dass man sich dafür verbiegen muss. Andere Mütter haben auch schöne Töchter.

              Live long and pros healthy,
               Martin

              --
              Hunde, die bellen, beißen nicht.
              Jedenfalls nicht gleichzeitig.
              1. Hi there,

                Das Problem ist halt, daß Du dann auf den Seiten, die nachfragen, ob bestimmte Ad-Contents auch geladen wurden, auch noch Javascript deaktivieren mußt.

                Nö, warum? Wenn mich irgendeine Site anpflaumt, ich solle meinen Ad-Blocker deaktivieren und mir andernfalls den Content verweigert, dann dreh ich mich halt um und bin weg. Kaum ein Webangebot ist so einzigartig, dass man sich dafür verbiegen muss. Andere Mütter haben auch schöne Töchter.

                Ja eh. Selten aber nicht niemals kommt es halt doch vor, daß man sich mit dem Content einer solcherart versifften Seite beschäftigen muss. Davon abgesehen geb' ich Dir natürlich absolut recht, nix kann so wichtig sein, daß man sich mit diesem Werbemüll auseinander setzt...

                1. Hi,

                  Kaum ein Webangebot ist so einzigartig, dass man sich dafür verbiegen muss. Andere Mütter haben auch schöne Töchter.

                  Ja eh. Selten aber nicht niemals kommt es halt doch vor, daß man sich mit dem Content einer solcherart versifften Seite beschäftigen muss.

                  dann gibt's immer noch die Quellcode-Ansicht. 🙃

                  Live long and pros healthy,
                   Martin

                  --
                  Hunde, die bellen, beißen nicht.
                  Jedenfalls nicht gleichzeitig.