Javascript-2-script

1、<script>元素

向HTML页面中引入Javascript的主要方法就是使用script元素。

HTML4.01为script定义了下面6个属性:
1,async:可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其它资源或等待加载其它脚本。只对外部脚本文件有效。
2,charset:可选。表示通过src属性指定的代码的字符集。
3,defer:可选。表示脚本可以延迟到文档完全被解析和现实之后再执行。只对外部脚本文件有效。
4,language:已废弃。原来用于表示编写代码使用的脚本语言。大多数浏览器会忽略这个属性,因此也没必要再用了。
5,src:可选。表示包含要执行代码的外部文件。
6,type:可选。可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型。

使用script元素的方式有两种:直接在页面中嵌入Javascript代码和包含外部Javascript文件。

包含在script闭合标签内部的Javascript代码将被从上至下依次解释。在解释器对script元素内部的所有代码求值完毕之前,页面中的其余内容都不会被浏览器加载或显示。

在使用script标签嵌入Javascript代码时,记住不要在代码中的任何地方出现"</script>"字符串。例如,浏览器在加载下面所示的代码时就会产生一个错误:

<script type="text/javascript">
function printScript() {
    alert("</script>");
}
</script>

因为按照解析嵌入式代码的规则,当浏览器遇到字符串"</script>"标签时,会认为是结束的<script>标签。可以通过转义符来解决这个问题,例如:

<script type="text/javascript">
    function printScript() {
        alert("<\/script>");
    }
</script>

2、标签位置

按照传统的做法,所有<script>元素都应该放在页面的<head>元素中,例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript" src="example.js"></script>
</head>
<body>
    
</body>
</html>

这种做法的目的就是把所有外部文件(包括CSS文件和Javascript文件)的引用都放在相同的地方。可是把所有的Javascript文件都放在<head>元素中,意味着必须等到全部Javascript代码都被下载、解析、执行完成之后。才开始呈现页面的内容。对于那些需要很多Javascript代码的页面来说,会导致浏览器窗口在呈现页面是出现明显的延迟,浏览器窗口一片空白。

为了避免这个问题,现代web一般都把全部Javascript引用放到<body>元素中页面内容之后,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script type="text/javascript" src="example.js"></script>
</body>
</html>

这样在解析包含的Javascript代码之前,页面的内容将完全呈现在浏览器中。

3、延迟脚本

HTML4.01为<script>标签定义了defer属性。这个属性的用途是表明脚本在执行时不会影响页面的构照。也就是说,脚本会被延迟到整个页面都解析完毕之后再运行,因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。

前面提到defer属性只适用于外部脚本文件。这一点在HTML5中已经明确规定,因此支持HTML5的实现会忽略嵌入脚本设置的defer属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值