Seitenaufbau beeinflussen

  • 0 x
    76 Beiträge
    0 Hilfreiche Beiträge
    09. 07. 2009, 12:42

    hallo!

    ich benutze macina_banner, um diverse banner in die website einzubinden. klappt soweit auch ganz gut. allerdings beziehe ich einige der banner aktuell von dritten und nun kommt es manchmal vor, dass deren server langsam oder nicht zu erreichen sind. das hat zur folge, dass meine seiten nicht oder nur sehr langsam aufgebaut werden.

    gibt es eine möglichkeit zu steuern, welche elemente einer seite zuerst geladen werden oder dass die seite erst ohne banner geladen wird und anschließend die banner?


  • 1
  • JBrooks JBrooks
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    10. 07. 2009, 09:34

    Da wäre es am Besten wenn du mit JavaScript ein wenig trickst. Würde die Adresse des Banners nicht direkt in der Webseite einbinden, sondern innerhalb eines JavaScript Befehles einbetten. Wenn die Seite dann vollständig geladen ist (onload Event), kannst du den Banner dann per JavaScript setzen. Soweit die Theorie :)

  • 0 x
    76 Beiträge
    0 Hilfreiche Beiträge
    10. 07. 2009, 11:34

    Ja ich hatte es schon befürchtet. Leider kenne ich mich mit Javascript so gut wie gar nicht aus!

    Habe es gestern mit jquery versucht, allerdings wurde entweder die ganze Seite durch das Banner ersetzt oder Seite und Banner wurden angezeigt, das Banner jedoch "gewrappt" von ein paar Zeichen des Script-Tags. Also nicht so schön.

  • 0 x
    76 Beiträge
    0 Hilfreiche Beiträge
    10. 07. 2009, 12:22

    Kennt sich jemand mit jQuery / JavaScript aus oder kann mir ein gutes Forum empfehlen?

  • JBrooks JBrooks
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2009, 08:01

    kannst du mal den Beispielcode posten? Speziell den Teil des Banners und den jQuery Code den du probiert hast. Dann können wir dir bestimmt weiterhelfen ;-)

  • 0 x
    76 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2009, 11:54

    Vorab: ich habe [B]noch [/B]keine Ahnung von JavaScript!

    Für [b]ein [/b]Banner muß folgender Code eingebaut werden:
    [HTML]<script type="text/javascript" src="http://yyy.yyy.com/js/yyy.js"></script>

    <script type="text/javascript" src="http://xxx.xxx.xxx.com/js?wp_id=64685"></script>
    [/HTML]

    Bislang habe ich es folgendermaßen versucht:

    Variante 1 (javascript-jquery-mix):
    [HTML]<script type="text/javascript">
    <!--
    $(document).ready(function(){
    var e = document.createElement("script");
    e.src = "http://yyy.yyy.com/js/yyy.js";
    e.type="text/javascript";
    document.getElementById("#headerBanner").appendChild(e);

    var s = document.createElement("script");
    s.src = "http://xxx.xxx.xxx.com/js?wp_id=64685";
    s.type="text/javascript";
    document.getElementById("#headerBanner").appendChild(s);
    });
    -->
    </script>[/HTML]
    Hier tut sich gar nichts.

    Variante 2 (mit jquery):
    [HTML]<script type="text/javascript">
    <!--
    $(document).ready(function(){
    $.getScript("http://yyy.yyy.com/js/yyy.js");
    $.getScript("http://xxx.xxx.xxx.com/js?wp_id=64685");
    });
    -->
    </script>
    [/HTML]
    Hier wird das Banner angezeigt aber der Rest der Seite gelöscht. Liegt wohl daran, dass ich die Skripte keinem Tag oder Selektor zuweise. Außerdem hört der Browser bei dieser Variante nicht auf Daten von einem der oben genannten Javascript-Quellen zu laden. Warum auch immer!?!

    Variante 3 (ebenfalls mit jquery):
    [HTML]<script type="text/javascript">
    <!--
    $(document).ready(function(){
    $('<script type="text/javascript" src="http://yyy.yyy.com/js/yyy.js"></script>').appendTo('#headerBanner');
    $('<script type="text/javascript" src="http://xxx.xxx.xxx.com/js?wp_id=64685"></script>').appendTo('#headerBanner');
    });-->
    </script>[/HTML]
    Hier werden tatsächlich das Banner und die Seite angezeigt. Leider interpretiert der Browser das </script>-Tag innerhalb der jquery-Funktion als End-Tag für den gesamten JavaScript-Code, sodass das Banner von Quellcode-Zeichen "gewrappt" wird. Sieht also nicht sehr schön aus!!!:o
    Ich versuche es nun schon seit 2 Tagen, habe gegooglet, getest usw. aber ich finde einfach keine Lösung. Ich hoffe, dass mir einer von Euch weiterhelfen kann.

  • JBrooks JBrooks
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2009, 15:45

    Dein Beispiel sieht soweit eigentlich richtig aus auf den ersten Blick.

    Probier aber mal die 2. Datei erst einzubinden, wenn die erste geladen wurde. Vielleicht bringt das was:

    1. <script type="text/javascript">
    2. <!--
    3. $(document).ready(function(){
    4. $.getScript("http://yyy.yyy.com/js/yyy.js",function(){
    5. $.getScript("http://xxx.xxx.xxx.com/js?wp_id=64685");
    6. });
    7.  
    8. });
    9. -->
    10. </script>

    Bin mal gespannt ob es daran liegt. Ansonsten wäre es interessant, wie der Code innerhalb der Dateien aussieht

  • 0 x
    76 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2009, 16:20

    So habe ich es auch schon probiert aber dann wird lediglich das Banner angezeigt und der Rest der Seite ist futsch. Ich weiß leider nicht wie ich $.getScript einem Element zuordnen kann. Für den Fall, dass ich etwas falsch gemacht habe, werde ich es so nochmal probieren.

  • JBrooks JBrooks
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2009, 16:41

    Kann man sich die Seite irgendwo anschauen? So aus der Entfernung ist das sonst schwer zu lösen. Der Code sieht bisher soweit richtig aus.

    kannst mir auch den Link per PM schicken falls ihn nicht jeder sehen soll.

  • JBrooks JBrooks
    R2-D2
    0 x
    96 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2009, 21:19

    den Link hier hab ich gerade gefunden. Der erklärt das Thema eigentlich wunderbar. Das mit dem document.write wußte ich bisher auch nicht. Daher wurde deine Seite bisher überschrieben.

    [url]http://www.webmasterpro.de/coding/article/ajax-loesung-verzoegertes-laden-von-js-code-der-documentwrite-enthaelt.html[/url]

    Das Script von diesem Artikel sollte wahrscheinlich die Lösung sein. Hab aber mal noch eine eigene einfachere Variante erstellt:

    1. <html>
    2. <head>
    3. <title>Test Beispiel</title>
    4. <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    5. </head>
    6. <body>
    7. <p>Start</p>
    8. <script type="text/javascript">
    9.  
    10. document.write = function(text) {
    11. document.getElementById('con').innerHTML = text
    12. }
    13.  
    14. var s = document.createElement('script');
    15. s.setAttribute('type','text/javascript');
    16. s.setAttribute('src','test.js');
    17. document.getElementsByTagName('head')[0].appendChild(s);
    18.  
    19. </script>
    20. <div id="con"></div>
    21. <p>Ende</p>
    22. </body>
    23. </html>

    Hoffe damit hat sich dein Problem gelöst ;-)

  • 1