Heim  >  Artikel  >  Web-Frontend  >  Eine ausführliche Diskussion von Skript-Tags in HTML (mit Code)

Eine ausführliche Diskussion von Skript-Tags in HTML (mit Code)

不言
不言Original
2018-09-06 17:32:158427Durchsuche

Dieser Artikel bietet Ihnen eine detaillierte Diskussion des Skript-Tags (mit Code) und hat einen gewissen Referenzwert. Ich hoffe, dass er für Sie hilfreich ist.

Skriptelement

Die Hauptmethode zur Verwendung der Sprache „Javascript“ in HTML-Seiten ist die Verwendung des Skriptelements. Der Code im Skriptelement wird der Reihe nach von oben nach unten ausgeführt.

Wenn mehrere Skriptelemente eingeführt werden, analysiert der Browser die Skriptelemente in der Reihenfolge, in der sie auf der Seite erscheinen. Wenn die vorherige Analyse abgeschlossen ist, wird der nächste Skriptinhalt analysiert.

Zwei Möglichkeiten, Javascript in HTML zu verwenden

//第一种方法:直接在标签内使用 javascript 即可
<script>
    console.log('第一种使用方法');
</script>

//第二种方法:引用外部文件
<script src="example.js"></script>

Attribute des Skriptelements

Mehrere häufig verwendete Attribute des Skriptelements

  • src: optional, wird zum Verweisen auf externe Javascript-Dateien verwendet

  • Typ: optional, der Typ der Skriptsprache, die zum Schreiben von Code verwendet wird (auch ein MIME-Typ), Standardwert ist text/ Javascript

  • async: optional, asynchrones Laden von Skripten, nur gültig für externe Skriptdateien

  • defer: optional, verzögertes Laden von Skripten, wird danach ausgeführt Das Dokument ist vollständig geparst, gilt nur für externe Skriptdateien

Die Position des Skriptelements in HTML

Da die Sprache „Javascript“ eine ist Die Threaded-Sprache kann nur eine Aufgabe gleichzeitig ausführen, sodass die nächste Aufgabe erst ausgeführt werden kann, nachdem die vorherige Aufgabe abgeschlossen ist. Dadurch befindet sich das Skriptelement an unterschiedlichen Positionen in HTML und zeigt unterschiedliche Effekte.

Alle Skriptelemente werden im -Element platziert

Dieser Ansatz bedeutet, dass wir warten müssen, bis der gesamte Javascript-Code ausgeführt wird, bevor die Anzeige beginnen kann Für den Inhalt der Seite führt diese Methode dazu, dass wir feststellen, dass das Laden der Seite sehr langsam und die Benutzererfahrung sehr schlecht ist, wenn die Seite viel Javascript-Code enthält. Es ist eigentlich ganz einfach.

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script src="example1.js"></script>
        <script src="example2.js"></script>
    </head>
    <body>
        <div>页面的内容区域</div>
    </body>
</html>

Alle Skriptelemente werden hinter dem Seiteninhalt platziert

Um das oben erwähnte Problem des langsamen Ladens von Seiten zu optimieren, müssen wir nur den von uns verwendeten Javascript-Code einfügen Inhalt der Seite: Die Seite lädt zuerst den Inhalt, zeigt ihn dann an und führt dann den Javascript-Code aus, sodass der Benutzer nicht lange warten muss, bis die Seite den Inhalt anzeigt.

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <div>页面的内容区域</div>
        <script src="example1.js"></script>
        <script src="example2.js"></script>
    </body>
</html>

Verzögertes Laden von Skripten

Um das Laden von Skripten zu verzögern, müssen Sie das Defer-Attribut des Skriptelements verwenden. Wenn das Element das Defer-Attribut verwendet, wird das Skript verzögert Die gesamte Seite wird nach Abschluss analysiert.

//example1.js 中的代码
//console.log('example1');
//console.log(document.getElementById('content'));

//example2.js 中的代码
//console.log('example2');
//console.log(document.getElementById('content'));

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script defer src="example1.js"></script>
    <script defer src="example2.js"></script>
</head>
<body>
    <div id="content">这里页面的内容</div>
</body>
</html>

Sie werden feststellen, dass die Konsole die folgenden Ergebnisse ausgibt, wenn das Defer-Attribut nicht hinzugefügt wird

example1
null
example2
null

Wenn das Defer-Attribut zu einem Element hinzugefügt wird, ändert sich das Ergebnis, was passieren kann im p-Element zu finden. Der Javascript-Code wird erst ausgeführt, wenn der Inhalt geladen ist.

example1
<div id="content">这里页面的内容</div>
example2
<div id="content">这里页面的内容</div>

Asynchrones Laden von Skripten

Das asynchrone Laden von Skripten erfordert das Attribut async vom Skriptelement. Beide ändern das Ladeverhalten des Skriptelements Das Async-Attribut wirkt sich nicht auf andere Ladevorgänge der Seite aus und blockiert nicht das Rendern von Dokumenten. Skripte mit Async-Attributen können die Ausführungsreihenfolge nicht garantieren, die sich vom Defer-Attribut unterscheidet.

Mit anderen Worten: Der Code in example2.js kann vor dem Code in example1.js ausgeführt werden. Vermeiden Sie daher bei Verwendung des async-Attributs, dass die beiden js voneinander abhängig sind.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script async src="example1.js"></script>
    <script async src="example2.js"></script>
</head>
<body>
    <div id="content">这里页面的内容</div>
</body>
</html>

Noscript-Element

Frühe Browser werden ein weiteres Problem haben, nämlich wie Seiteninhalte angezeigt werden, wenn der Browser die Javascript-Sprache nicht unterstützt. Die Lösung hierfür ist die Erstellung eines Noscript-Elements , das Inhalte in Browsern anzeigen kann, die kein Javascript unterstützen, und seinen Inhalt nur in Browsern anzeigt, die kein Javascript unterstützen.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script async src="example1.js"></script>
    <script async src="example2.js"></script>
</head>
<body>
    <noscript>
        当前浏览器不支持 Javascript 请更换浏览器
    </noscript>
</body>
</html>

Verwandte Empfehlungen:

Welche Rolle spielt das Skript-Tag in HTML? Wozu dient das Typattribut im Skript-Tag?

Recherche zum Skript-Tag in HTML_html/css_WEB-ITnose