深夜课堂:JavaScript在HTML中的使用

1.HTML中的script元素
现上栗子:

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

其实,script元素有6个属性:
async:表示立即下载脚本,但是不妨碍页面中的其它操作。
charset:通过src属性指定的代码的字符集。很少使用。
defer:延迟到文档被完全解析和显示之后执行。
language:已经废弃不用…
src:外部文件地址。
type:表示编写代码使用的脚本语言的类型。如果没有写,默认是text/javascript。

需要注意的是,在代码中不要出现</script>,否则会报错:

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

应该写成:

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

这样就不会遇到问题了。

将js代码放在外部文件中时,页面引入js则需要:

<script type="text/javascript" src="example.js" />

浏览器会按先后顺序依次解析这些嵌入的文件(不包含defer、async属性时)。

标签的位置:
第一种,可以放在head标签里:

<!DOCTYPE html>
    <html>
      <head>
        <title>Example HTML Page</title>
        <script type="text/javascript" src="example1.js"></script>
        <script type="text/javascript" src="example2.js"></script>
        </head>
        <body>
            <!--       --> 
        </body>
</html>

但是,这样意味着所有的js代码都被加载解析完成后,才开始加载页面,在解析js代码的过程中,页面将会是一片空白的。为了解决这个问题:

<!DOCTYPE html>
<html>
  <head>
    <title>Example HTML Page</title>
  </head>
  <body>
  <!--       -->
  <script type="text/javascript" src="example1.js"></script>       
  <script type="text/javascript" src="example2.js"></script>
  </body>
</html>

这样,在解析js代码之前,页面就可以先呈现出来。

defer属性:

<script type="text/javascript" defer="defer" src="example1.js"></script>

加入了该属性,则脚本会被延迟到整个页面解析完成后执行。相当于告诉浏览器:立即下载,但是延迟执行。规定两个defer文件执行的顺序是按照它们的先后次序的。(但是现实中,两个defer文件则不一定会按顺序执行,因此最好只包含一个defer文件)
另外,defer属性只适用于外部文件。

async,异步脚本:
与defer相同,async只适用于外部js文件。
与defer不同的是,两个async文件执行的顺序不一定。
async属性的作用是不让页面等待js文件的下载和执行,去异步的加载其它内容,因此,最好不要在async的js文件中修改DOM对象。

另外,建议js文件最好都可以写成外部文件的形式,如下优点是人们一直强调的:
1、可维护性好。
2、可缓存,这样就加快了页面的加载速度。
3、适应XHTML。
还有一点是我个人比较喜欢外部嵌入js文件的原因:在外部嵌入js可以在浏览器的控制台方便的进行调试,然而在jsp中写入js文件则不方便使用断点调试的功能。

noscript元素:

<html>
      <head>
        <title>Example HTML Page</title>
        <script type="text/javascript" defer="defer" src="example1.js"></script> 
        <script type="text/javascript" defer="defer" src="example2.js"></script>
      </head>
      <body>
        <noscript> 
            <p>本页面需要浏览器支持JavaScript </p>
        </noscript> 
      </body>
</html>

当浏览器不支持JavaScript的时候,使用noscript元素可是为用户提供提示,使页面平稳的退化。
入上面这个例子:当浏览器不支持脚本,或者脚本被禁用的时候,p元素中的内容就会被现实出来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值