码迷,mamicode.com
首页 > 编程语言 > 详细

HTML中的JavaScript

时间:2019-12-06 11:49:27      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:body   问题   的区别   type   条件   load   禁用   完全   defer   

一、<script>元素

  1.1 属性

    ①async:可选项。表示立即下载脚本,加载后立即执行,但是不会妨碍文档的解析或其他操作(异步,即和文档解析并行,正常情况下互不打扰)。只对外部的脚本文件有效。

    ②defer:可选项。表示该脚本只有文档完全解析和显示之后再执行(异步,与上面的区别就是执行的顺序,会先于 DOMContentLoaded 事件)。只对外部脚本文件有效。注意:在现实当中,延迟脚本并不一定会按照顺序执行,也不一定会在 DOMContentLoaded 事件触发 前执行,因此好只包含一个延迟脚本。 

技术图片

 

 

 

    ③charset:可选项。表示src属性指定的代码的字符集(简单来说就是那个外部链接的字符集)。只对外部脚本文件有效。

    ④src:可选项。表示包含要执行的外部脚本文件。

技术图片

 

 

 

    ⑤type:表示脚本语言的内容类型。比如js脚本就是 text/javascript (其实不需要这个也没关系)。

  1.2 标签位置

    传统做法是将所有的<script>标签全部放在<head>标签中。但是这样的后果就是只有将<head>标签中所有的脚本全部下载并且解析和执行完之后才能开始解析<body>中的内容(用户可以看到的),这无疑会导致浏览器会呈现页面显示出现很大的延迟,延迟期间浏览器窗口会是一片空白。为了避免这个问题,一般将与操作文档无关的脚本全部放在<body>元素的页面内容的后面。

    还有一种解决方法就是刚刚上面说的defer属性和async属性。

二、嵌入代码与外部文件

  推荐使用外部文件引用。有如下有点:

  ? 可维护性:遍及不同 HTML页面的 JavaScript会造成维护问题。但把所有 JavaScript文件都放在 一个文件夹中,维护起来就轻松多了。而且开发人员因此也能够在不触及 HTML标记的情况下, 集中精力编辑 JavaScript代码。

  ? 可缓存:浏览器能够根据具体的设置缓存链接的所有外部 JavaScript文件。也就是说,如果有两个 页面都使用同一个文件,那么这个文件只需下载一次。因此,终结果就是能够加快页面加载的 速度。

  ? 适应未来:通过外部文件来包含 JavaScript 无须使用 XHTML 或注释 hack。HTML 和 XHTML包含外部文件的语法是相同的。

三、<noscript>元素

  早期浏览器有可能不支持JavaScript脚本,这就需要让页面平稳的退化(即不能什么都不显示)。于是<noscript>元素出现了,用在不支持JavaScript的浏览器中显示替代的内容。这个元素可以包含能够出现在<body>中 任何元素----<script>除外。包含在<noscript>元素中的内容只有在下列情况下才会显示出来:

  ? 浏览器不支持脚本;

  ? 浏览器支持脚本,但脚本被禁用。 

  符合上面任何一个条件,浏览器就只会显示<noscript>中的内容。其他情况下,用户永远也看不到<noscript>中的内容。

 

 

HTML中的JavaScript

标签:body   问题   的区别   type   条件   load   禁用   完全   defer   

原文地址:https://www.cnblogs.com/Falling-snow/p/11993882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!