Maison  >  Article  >  interface Web  >  Une discussion détaillée des balises de script en HTML (avec code)

Une discussion détaillée des balises de script en HTML (avec code)

不言
不言original
2018-09-06 17:32:158412parcourir

Cet article vous apporte une discussion détaillée de la balise de script (avec code) en HTML. Elle a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'elle vous sera utile.

Élément de script

La principale façon d'utiliser le langage "Javascript" dans les pages HTML est d'utiliser l'élément de script. Le code à l'intérieur de l'élément de script est exécuté dans l'ordre de haut en bas.

Lorsque plusieurs éléments de script sont introduits, le navigateur analysera les éléments de script dans l'ordre dans lequel ils apparaissent sur la page. Lorsque l'analyse précédente est terminée, l'élément de script suivant sera analysé. >

Deux façons d'utiliser Javascript en HTML

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

//第二种方法:引用外部文件
<script src="example.js"></script>
Attributs de l'élément de script

Plusieurs attributs couramment utilisés de l'élément de script

  • src : facultatif, utilisé pour référencer des fichiers javascript externes.

  • type : facultatif, le type de langage de script utilisé pour écrire le code (également un type MIME), la valeur par défaut est text/javascript

  • async : facultatif, chargement asynchrone des scripts, valable uniquement pour les fichiers de script externes

  • defer : facultatif, chargement de script retardé , exécuté après analyse complète du document, valable uniquement pour les fichiers de script externes

La position de l'élément de script en HTML

En raison du langage "Javascript" Il est un langage monothread qui ne peut effectuer qu'une seule tâche à la fois. Par conséquent, la tâche suivante ne peut être effectuée qu'une fois la tâche précédente terminée. Par conséquent, l'élément de script sera positionné différemment dans HTML et affichera des effets différents.

Tous les éléments de script sont placés dans l'élément

Cette approche signifie que nous devons attendre que tout le code Javascript soit exécuté avant que l'affichage puisse commencer. pour le contenu de la page, si la page contient beaucoup de code Javascript, cette méthode nous fera constater que le chargement de la page sera très lent et l'expérience utilisateur sera très mauvaise Alors comment l'optimiser de cette manière ? C'est en fait très simple.

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

Tous les éléments de script sont placés derrière le contenu de la page

Pour optimiser le problème de chargement lent des pages mentionné ci-dessus, il nous suffit de mettre le code Javascript que nous utilisons Placez-le simplement après le contenu de la page, afin que la page charge d'abord le contenu, puis l'affiche, puis exécute le code Javascript, afin que l'utilisateur n'attende pas longtemps avant que la page affiche le contenu.

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

Comment retarder le chargement des scripts, vous devez utiliser l'attribut defer de l'élément script Lorsque l'élément utilise l'attribut defer, le script sera. retardé jusqu'à ce que l'intégralité du script soit chargée. Exécuté une fois l'analyse de la page terminée.

//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>
Vous constaterez que lorsque l'attribut defer n'est pas ajouté, la console imprimera les résultats suivants

example1
null
example2
null
Lorsque l'attribut defer est ajouté à l'élément, le résultat va changer, comme vous pouvez le voir. Le code Javascript ne sera pas exécuté tant que le contenu de l'élément p n'aura pas été chargé.

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

Le chargement asynchrone des scripts nécessite l'utilisation de l'attribut async de l'élément script. Il est similaire à l'attribut defer, les deux modifient le comportement de chargement du. élément de script, mais async L'attribut n'affectera pas les autres chargements de la page, ne bloquera pas le rendu du document et les scripts avec des attributs asynchrones ne peuvent pas garantir l'ordre dans lequel ils sont exécutés, qui est différent de l'attribut defer.

En d'autres termes, le code de example2.js peut être exécuté avant le code de example1.js, donc lorsque vous utilisez l'attribut async, évitez que les deux js ne dépendent l'un de l'autre.

<!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>
élément noscript

Les premiers navigateurs auront un autre problème, à savoir comment afficher le contenu de la page lorsque le navigateur ne prend pas en charge le langage Javascript. La solution est de créer un. élément noscript, qui peut afficher du contenu dans les navigateurs qui ne prennent pas en charge Javascript, et le contenu ne sera affiché que dans les navigateurs qui ne prennent pas en charge Javascript.

<!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>
Recommandations associées :

Quel est le rôle de la balise script en HTML ? Quelle est l’utilisation de l’attribut type dans la balise de script ?

Recherche sur la balise script en HTML_html/css_WEB-ITnose