Hotte: Ladeprobleme

Hi,

ich möchte gerne einen RSS Feed in eine Webseite einbinden. A
Als Tool mit dem sich das via PHP und JS realisieren lässt habe das wohl schon ältere Feed2JS gefunden.

Das Ganze funktioniert soweit prima.
Ein Problem besteht allerdings wenn die angeforderte RSS Datei zu lange braucht um übermittelt zu werden, also wenn der Server nicht flott genug ist.

Dann "hängt" die Seite solange bis die Daten da sind.

Das JS wird im body der Seite an der gewünschten Ausgabestelle eingetragen

<script language="JavaScript" src="http://www.example.de/site_feed2js/feed2js.php?src="Pfad zur rss.xml&amp;chan=y&amp;num=5&amp;desc=150&gt;1&amp;date=n&amp;targ=y&amp;utf=y" type="text/javascript"></script>

Gibt es eine Möglichkeit dieses JS erst nach dem vollständigen Laden der Seite ausführen zu lassen?

Ich hab leider nicht wirklich eine Ahnung in welche Richtung ich suchen muss...

Wäre als für nützliche Hinweise dankbar

Thanks Hotte

  1. Hi,

    Ein Problem besteht allerdings wenn die angeforderte RSS Datei zu lange braucht um übermittelt zu werden, also wenn der Server nicht flott genug ist.

    Dann "hängt" die Seite solange bis die Daten da sind.

    Ja, Scripts und CSS-Ressourcen mit langen Ladezeiten sind sehr schlecht für den Seitenaufbau, weil die aktuellen Browser diese erst mal fertig laden, bevor sie weiter machen.

    Gibt es eine Möglichkeit dieses JS erst nach dem vollständigen Laden der Seite ausführen zu lassen?

    Theoretisch gäbe es dazu das defer-Attribut. Wird derzeit aber AFAIK nur vom IE unterstützt.

    Das Script-Element nicht direkt im Dokument zu notieren, sondern es erst nach dessen Fertigladen dynamisch zu erzeugen und in den head einzuhängen, wäre eine Alternative.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. @@Hotte:

    nuqneH

    Gibt es eine Möglichkeit dieses JS erst nach dem vollständigen Laden der Seite ausführen zu lassen?

    Das JavaScript als letztes im Body notieren? [http://www.webkrauts.de/2008/12/14/sehr-sehr-schnelle-seiten-website-performance-best-practice-teil-2/]

    Qapla'

    --
    Bildung lässt sich nicht downloaden. (Günther Jauch)
  3. Das JS wird im body der Seite an der gewünschten Ausgabestelle eingetragen

    <script language="JavaScript" src="http://www.example.de/site_feed2js/feed2js.php?src="Pfad zur rss.xml&amp;chan=y&amp;num=5&amp;desc=150&gt;1&amp;date=n&amp;targ=y&amp;utf=y" type="text/javascript"></script>

    Gibt es eine Möglichkeit dieses JS erst nach dem vollständigen Laden der Seite ausführen zu lassen?

    Das wird schwierig, denn höchstwahrscheinlich arbeitet das Script mit document.write - weshalb das einbindende script-Element, wie du sagst, an der Ausgabestelle stehen muss.

    Wenn du das Script erst nach dem vollständigen Laden ausführen willst, so ist das möglich (siehe Vorposter), aber dann funktioniert das Script nicht, solange es document.write einsetzt (siehe Ausführung von script-Elementen).

    Das heißt, du müsstest den JavaScript-Code, den das PHP-Script ausgibt, entsprechend anpassen. Das kann z.B. eine Funktion sein, die eine ID entgegennimmt. Sie könnte dann folgendes tun:

    function insertFeed (elementId) {
       document.getElementById(elementId).innerHTML = '... Der ganze Kladderadatsch ...';
    }

    Du kannst sie dann nach dem Einbinden am Ende des Dokuments über
    insertFeed('ID des Elements, das die »Ausgabestelle« darstellt');
    aufrufen und das Element wird mit dem generierten HTML-Code befüllt.

    Mathias

    1. Hi @ all,

      danke für die Hinweise, werde mir mal alles zu Herzen nehmen und schauen ob ich das irgendwie hinbekomme... :-)

      Hotte