<script>元素

向HTML页面中插入Javascript的主要方法,就是使用<script>元素,<script>元素有六个属性:

  1. async:可选。表示应该立即下载脚本,但不妨碍页面的其他操作,比如下载其他资源或等待加载其他脚本,只针对外部脚本有效。
  2. defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只针对外部脚本有效。
  3. src:可选。表示包含要执行代码的外部文件。
  4. type:可选。表示编写代码使用的脚本语言内容类型。默认为text/javascript
  5. language:已废弃。原来表示脚本语言类型
  6. charset:可选。表示通过src属性指定的代码的字符集。大多数浏览器会忽略。

   使用<script>元素的方式有两种,直接在页面嵌入Javascript代码和包含外部javascript。

   如下只需为元素指定 type="text/javascript"属性即可

<script type="text/javascript">
function sayHay(){
alert("hello,world");
}
</script>

 注意:

1、在使用<script>嵌入代码是不要在代码中出现</script>字符串,浏览器会认为是结束标签而产生错误。

     2、在解析外部的Javascript文件时,页面的处理也会暂停

         3、带有src属性的<script>元素不应该在其<script>和</script>元素之间如果嵌入代码会被忽略,只会加载外部脚本文件。

4、按照传统的做法<script>元素应该都放在页面的<head>元素中,这样必须等待所以的脚本加载完成才开始加载页面内容,所以一般把全部的                    javascript引用放在<body>元素的后面。

    

延迟脚本:只使用与外部脚本文件

<!DOCTYPE hrml>
<html>
<head>
<script type="text/javascript" defer="defer" src="src1.js"></script>
     <script type="text/javascript" defer="defer" src="src2.js"></script>
</head>
<body> </body>
</html>

  这个例子中添加了defer属性,其中包含的脚本要到浏览器遇到</html>标签之后再执行。HTML5规范要求脚本按照他们的出现的顺序执行,所以第一个脚本会先于第二行脚本执行。但现实当中,延迟脚本并不一定按照顺序执行,因此最后只包含一个延迟脚本。

  不同浏览器对defer的支持也不同,所以最后把延迟脚本放到页面底部。

异步脚本:只使用与外部脚本文件
<!DOCTYPE hrml>
<html>
<head>
<script type="text/javascript" async src="src1.js"></script>
     <script type="text/javascript" async src="src2.js"></script>
</head>
<body> </body>
</html>

  异步脚本告诉浏览器立即下载文件,指定async属性的目的是不让页面等待脚本下载和执行,从而异步加载,浏览器不保证脚本按先后顺序执行,不要再加载时修改DOM。

XHTML 中的用法

可扩展标记语言是将html作为XML的应用而重新定义的,当在XHTML中嵌入代码时,"<"会发生错误,被当成一个新标签来解析,一般用CData片段来包含Javascript代码,

某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。CDATA 部分中的所有内容都会被解析器忽略。CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:由于部分浏览器不兼容xhtml,再使用javascript注释将CData标记注释掉。

<script>
//<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
//]]>
</script>

ps:在支持xml文档中虽然用'//'注释掉代码但xml文档中仍可识别出属于xml的代码<![CDATA[  和 ]]>,而不支持xml文档中,由于<![CDATA[  和 ]]>是xml代码所直接被注释掉。

嵌入式代码和外部文件

    1. 可维护性:把所有javascript代码放入一个文件夹内,维护起来方便。
    2. 可缓存:相同文件只需下载一次。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src=”src.js“></script>
</head>
<body>
<noscript><p> no support javascript</p></noscript>
</body>
</html>

小结:

  1. 在包含外部js文件时需指定src.
  2. 所以<script>会按照在页面中的顺序被解析,不使用defer和async的情况下,只有解析完<script>中代码才解析之后的元素,一般把<script>元素放到页面最后,<body>之前。
  3. defer文档呈现之后加载,async文档异步加载,不阻塞文档呈现。
  4. 当javascript不支持或禁止时<noscript>可以显示替代内容。

Javascript高级程序设计——在HTML中使用Javascript的更多相关文章

  1. JavaScript高级程序设计-(1)html中使用JavaScript

    html中使用JavaScript 1.延迟脚本 script标签定义了defer属性,脚本会被延迟到整个页面都解析完毕后运行 详细内容如下: 2.异步脚本 script标签定义了async属性,as ...

  2. 2. javacript高级程序设计-在HTML中使用JavaScript

    1.1 <script>元素 向HTML页面中插入JavaScript的主要方法,就是使用<script>元素,<script>元素定义了一下6个元素: (1). ...

  3. 读javascript高级程序设计00-目录

    javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...

  4. JavaScript 高级程序设计 目录

    为什么会写这个学习教程呢??因为一直以来,学习JavaScript都没有系统的学过,用什么学什么,所以今天开始,重新把JavaScript系统的学一遍!(本人也是菜鸟一枚,语文水平也还是小学程度,看得 ...

  5. 读javascript高级程序设计-目录

    javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...

  6. 《JavaScript高级程序设计(第3版)》笔记-序

    很少看书,不喜欢看书,主要是上学时总坐不住,没有多大定性,一本书可以两天看完,随便翻翻,也可以丢在角落里几个月不去动一下. 上次碰到了<JavaScript高级程序设计(第3版)>感觉真的 ...

  7. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  8. 【javascript学习——《javascript高级程序设计》笔记】DOM操作

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...

  9. 《JavaScript高级程序设计》读书笔记--前言

    起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...

随机推荐

  1. jQuery知识点总结(第四天)

    前三天是jQuery的基础部分,选择器学好了.才能进行下一步的操作,如果前三天没学过没学好,不要跳着学.粗俗的话叫做,步子大了,容易扯着蛋.一步一个脚印,是最好的方式. 强调一下.有问题,不要憋着不讲 ...

  2. POJ 1947Rebuilding Roads(树形DP + 01背包)

    题目链接 题意:给出一个树形结构,求P个节点的子树最少要去掉几条边 分析:DP[root][j] 表示 以第 root 个为根节点, 包含j 个节点需要去掉几条边.那么对于 root 这个根节点来说, ...

  3. SaltStack之Job管理和Runner(八)

    SaltStack之Job管理和Runner 配置文件/etc/salt/master cachedir: /var/cache/salt/master # cache路径 keep_jobs: 24 ...

  4. Django中Celery的实现介绍(一)

    Django中Celery的实现 Celery官网http://www.celeryproject.org/ 学习资料:http://docs.jinkan.org/docs/celery/ Cele ...

  5. linux安装ftp组件

    1   安装vsftpd组件 linux系统安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y install v ...

  6. 【原】使用webpack打包的后,公共请求路径的配置问题

    在我们公司,和后台接接口时,公共的请求路径我们是单独抽出来的,放在一个独立的public.js中,在public.js中存入那个公共变量 公共变量是这样 在其他地方使用ajax时,我们就这样使用 这种 ...

  7. MySQL中的外键是什么、有什么作用

    本文参加博文大赛,如果您满意的话麻烦点击这里给我投票原,查看原文点击这里.最近自学数据库MySQL,然后有个疑问,一直不得其解,查询了相关资料,最后还是没有解决. 我的疑问是 "使用外键约束 ...

  8. CURL函数的GET和POST方式的两种写法(实现ajax跨域调用)

    POST请求 function curl_post($url='',$postdata='',$options=array()){ $ch=curl_init($url); curl_setopt($ ...

  9. 自然语言16_Chunking with NLTK

    Chunking with NLTK 对chunk分类数据结构可以图形化输出,用于分析英语句子主干结构 # -*- coding: utf-8 -*-"""Created ...

  10. Java 命令行运行参数大全

    Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟 ...