Dmitri Rettig: Ein zusätzliches Attribut in <script></script>

Hallo,

ich habe gelesen, dass es ein Attribut in <script></script> gibt, das angegeben werden sollte, wenn das JavaScript nichts mit document.write oder document.writeln ausgibt. Wie es hies, habe ich vergessen. Vielleicht könnt ihr mir auf die Sprünge helfen und da ich so ein Fetischist des sauberen Quelltextes bin: Gehört dieses Attribut zum Standart von HTML 4.01 oder von XHTML 1.0 und wenn ja, wieso wird es nicht in SELFHTML erwähnt?

MfG Dmitri

  1. n'Abend.

    ich habe gelesen, dass es ein Attribut in <script></script> gibt, das angegeben werden sollte, wenn das JavaScript nichts mit document.write oder document.writeln ausgibt. Wie es hies, habe ich vergessen.

    defer heißt's. (http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/defer.asp)

    Vielleicht könnt ihr mir auf die Sprünge helfen und da ich so ein Fetischist des sauberen Quelltextes bin: Gehört dieses Attribut zum Standart von HTML 4.01 oder von XHTML 1.0

    In HTML 4.01 gibt's das Dingen: http://www.w3.org/TR/html401/interact/scripts.html#adef-defer
    Ob's das auch in XHTML 1.0 weiß ich nicht, such eben beim w3c.

    und wenn ja, wieso wird es nicht in SELFHTML erwähnt?

    Weil http://selfhtml.teamone.de/editorial/hinweise.htm#haftung.

    Gruß
    Norbert

    1. Hi,

      habe ich das richtig verstanden:

      Dieses defer bringt so ziemlich gar nix, ausser dass der Validator nicht murmelt?

      Gruß Dmitri

      1. Hallo.

        habe ich das richtig verstanden:

        Dieses defer bringt so ziemlich gar nix, ausser dass der Validator nicht murmelt?

        Was der Validator dazu sacht weiß ich nicht, aber soweit ich das verstanden habe, soll dadurch das dynamische generieren von Wasauchimmer unterbunden werden (steht übrigens doch in SELFHTML: http://selfhtml.teamone.de/html/transit/scripts.htm#weitere_infos).
        Ob das sinnvoll ist, wage ich aber zu bezwifeln, anstatt defer zu verwenden kann man das document.write() doch auch gleich raus lassen, bzw. wozu sollte man es denn einbaun, wenn man es später sowieso mit defer unterbinden will.
        Naja, aber irgendein schlauer Mensch wird sich schon was dabei gedacht haben - was auch immer das gewesen sein mag.

        Gruß
        Norbert

        1. Hallo Dmitri, hallo Norbert

          Ob das sinnvoll ist, wage ich aber zu bezwifeln, anstatt defer zu verwenden kann man das document.write() doch auch gleich raus lassen, bzw. wozu sollte man es denn einbaun, wenn man es später sowieso mit defer unterbinden will.
          Naja, aber irgendein schlauer Mensch wird sich schon was dabei gedacht haben - was auch immer das gewesen sein mag.

          ein "gefährliches" Attribut :-), denn nirgendwo steht beim W3C geschrieben, was im Anschluß passieren soll.

          Sinn des Attributes ist es, zuerst die Seite zu laden und dann die Scripte auszuführen. Es soll einen Geschwindigkeitszuwachs bringen.

          Im IE wird das document.write() nicht unterbunden. Defer bewirkt hier, dass die Ausführung des Scriptes erst nach dem Laden der Seite erfolgt.

          Teste mal dieses kleine Beispiel:

          <html>
          <head>
          <title>Attribut defer</title>
          </head>
          <body>
          <script defer="true" type="text/javascript">
               alert(1)
           </script>
           <script defer="true" type="text/javascript">
               document.write(2)
           </script>
           <script type="text/javascript">
              alert(3)
           </script>
          </body>
          </html>

          Das demonstriert ziemlich gut, wie mit dem Attribut im IE umgegangen wird. Sollten mal andere Browser als der IE das Attribut interpretieren, wird wohl jeder etwas anderes damit machen, denn das W3C schweigt sich darüber aus, was nach dem Laden der Seite passieren soll.

          Viele Grüße

          Antje

          1. Hallo Antje,

            Zitat aus http://selfhtml.teamone.de/html/transit/scripts.htm#weitere_infos

            "Ein weiteres Attribut namens defer (STANDALONE-Attribut) soll verhindern, dass ein Script dynamisch Text schreibt. Einzelne JavaScript-Anweisungen wie document.write() werden dadurch unterbunden. Beachten Sie, dass dieses Attribut bislang jedoch nur von neueren Versionen des MS Internet Explorers interpretiert wird."

            Zitat aus http://www.w3.org/TR/html401/interact/scripts.html#adef-defer

            "When set, this boolean attribute provides a hint to the user agent that the script is not going to generate any document content (e.g., no "document.write" in javascript) and thus, the user agent can continue parsing and rendering. "

            Ich verstehe es so: Wenn du <script defer> angibst, dann ist es schon true, wenn nicht, dann ist es false.

            Teste mal dieses kleine Beispiel:

            <html>
            <head>
            <title>Attribut defer</title>
            </head>
            <body>
            <script defer="true" type="text/javascript">
                 alert(1)
            </script>
            <script defer="true" type="text/javascript">
                 document.write(2)
            </script>
            <script type="text/javascript">
                alert(3)
            </script>
            </body>
            </html>

            MfG Dmitri

  2. Hallo,

    Servus!

    ich habe gelesen, dass es ein Attribut in <script></script> gibt, das angegeben werden sollte, wenn das JavaScript nichts mit document.write oder document.writeln ausgibt. Wie es hies, habe ich vergessen. Vielleicht könnt ihr mir auf die Sprünge helfen und da ich so ein Fetischist des sauberen Quelltextes bin: Gehört dieses Attribut zum Standart von HTML 4.01 oder von XHTML 1.0 und wenn ja, wieso wird es nicht in SELFHTML erwähnt?

    MfG Dmitri

    Meinst du vielleicht dieses hier:

    <script type="text/javascript">

    Ich weiß jetzt nicht, ob es jenes Attribut ist, nach dem du suchst, aber vielleicht kann es für dich ja von Nutzen sein.

    1. Hi Vegeta,

      Zuerst die Antworten anderer Lesen, dann dein Posting verfassen [ausser bei Designkritiken]

      MfG Dmitri

      1. Zuerst die Antworten anderer Lesen, dann dein Posting verfassen [ausser bei Designkritiken]

        Das tue ich prinzipiell... *g*

        Aber war das denn nun das gesuchte Attribut?

        1. Hi,

          du bist ein Schärzkeks! Nein, das Attribut war defer, lies doch mal die anderen Antworten auf mein erstes Posting ...

          Gruß Dmitri

          1. du bist ein Schärzkeks! Nein, das Attribut war defer, lies doch mal die anderen Antworten auf mein erstes Posting ...

            Ja, okay. Es tut mir leid! Sorry!