<script>元素

在HTML页面中插入Javascript的主要办法就是使用<script>元素,HTML4.01为<script>定义了下列6个属性。

1.async:可选,表示应该立即下载脚本,但不应该妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。最对外部脚本文件有效。

2.charset:可选,表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少人用。

3.defer:可选,表示脚本可以延迟到文档完全被解析和显示之后在执行。只对外部脚本文件有效。IE及更早版本对嵌入脚本也支持这个属性。

4.language: 已废弃。原来用于表示编写代码使用的脚本语言。大多数浏览器会忽略这个属性,因此也没有在使用的必要了。

5.src:可选,表示包含要执行外部文件。

6.type:可选,可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型。

标签的位置

按照传统的做法,所有<script>元素都应该放在页面的<head>元素中,但是这样子文档就必须等到所有的JavaScript代码下载,解析和执行完成以后,才能开始呈现页面的内容。对于那些所有很多的JavaScript代码的页面来说,这无疑会导致浏览器在呈现页面的时候出现明显的延迟,而延迟期间的浏览器窗口中将会是一片空白,导致用户体验极其不好。为了解决这个问题,现在Web应用程序一般都把全部JavaScript引用放在<body>元素中页面内容的后面,这样在解析包含的JavaScript代码之前,页面的内容将完全呈现在浏览器中。而用户也会因为浏览器窗口显示空白页面的时间缩短而感到打开页面的速度加快了。

延迟脚本

<script>标签定义了defer属性。这个属性的用途是表明脚本在执行是不会影响页面的构造。也就是说,脚本会延迟到整个页面都解析完成之后在运行。因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。前面提到过,defer属性只适用于外部脚本文件。这一点在HTMl5已经明确规定,因此支持HTML5的实现会忽略给嵌入脚本设置的defer属性。IE4-IE7还支持对嵌入脚本的defer,像平常一样处理脚本。为此,把延迟脚本放到页面底部依然是最佳选择。

异步脚本

HTML5为<script>元素定义了async属性。与defer类似,都用于改变处理脚本的行为,也只适用于外部脚本,并告诉浏览器立即下载文件。但于defer不同的是,标记为async的脚本并不保证按指定它们的先后顺序执行。指定async属性的目的是不然页面等待拥有该属性的脚本下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。异步脚本一定会在页面的load事件前执行。支持异步脚本的浏览器有Firefox3.6,Safari5和Chrome。

<noscript>元素

早期浏览器都面临一个特殊的问题,即当浏览器不支持JavaScript时如何让页面平稳退化。对于这个问题的最终解决方案就是创造一个<noscript>元素,用以不支持JavaScript的浏览器显示替代的内容。在<noscript>元素中的内容只有在下列情况才会显示出来:

1.浏览器不支持脚本

2.浏览器支持脚本,但脚本禁用。

从头认识js-HTML中使用JavaScript的更多相关文章

  1. JS高程2.在HTML中使用Javascript(1)

    1.使用<script>元素向HTML页面中插入Javascript HTML4.01中<script>标签有6个属性: (1)async:可选.表示立即下载脚本,不影响页面中 ...

  2. 第2章 两种调用JS的方法——在HTML中使用JavaScript

    一. <script>标记 第一种方法是把 <sript></script>直接放到head和script两个标记之间(title下面,</head>上 ...

  3. maven中Rhino classes (js.jar) not found - Javascript disabled的处理

    想使用单元测试 来测一下服务请求,于是想到了使用Junit,查了一下,决定使用 HttpUnit 来发送请求 于是在maven中引入了 <dependency> <groupId&g ...

  4. jQuery-vsdoc.js文件是vs中的JavaScript intellisense,

    在VS 2008中启用jQuery Intellisense的步骤 要在VS中启用jQuery的intellisense完成,你要遵循三个步骤: 第一步: 安装VS 2008 SP1 VS 2008 ...

  5. JavaScript进阶(二)在一个JS文件中引用另一个JS文件

    在一个JS文件中引用另一个JS文件       转载地址:http://blog.csdn.net/zndxlxm/article/details/7875787 方法一 在调用文件的顶部加入下例代码 ...

  6. 在SharePoint解决方案中使用JavaScript (1) – 引用.js文件

    本文是系列文章的第一篇. 在SharePoint解决方案中使用JavaScript (0) 作为在SharePoint应用程序中使用JavaScript的第一步,就是要知道如何将一个写好的.js文件, ...

  7. 全面解析JavaScript的Backbone.js框架中的Router路由

    这篇文章主要介绍了Backbone.js框架中的Router路由功能,Router在Backbone中相当于一个MVC框架中的Controller控制器功能,需要的朋友可以参考下. Backbone ...

  8. javascript 在js文件中获取路径

    如果在*.js文件中获取当自己当前的路径是很重要的. 举个例子,如果一个css文件中引用图片,如background-img: url('./Images/bg.png').那么图片的路径,是相对于c ...

  9. js文件中函数前加分号和感叹号是什么意思?

    本文转自:http://blog.csdn.net/h_o_w_e/article/details/51388500 !function(){}();   !有什么用? 从语法上来开,JavaScri ...

随机推荐

  1. (转)Navicat Premium 12.1.8.0安装与激活

    http://www.mamicode.com/info-detail-2493067.html

  2. Pwn-Gcc编译命令

  3. vmware ubuntu 解决 宿主机与虚拟机互相ping不通,虚拟机无线上网的解决办法

    首先 virtual network editor 设为桥接 选定无线网卡 虚拟机的网络设置 选桥接. 其次, 如果不能互相ping通,注意主机是否关闭了防火墙,是否退掉了360(没验证), 还要注意 ...

  4. day35-子进程的开启

    #1.异步非阻塞: import os from multiprocessing import Process def func(): print('子进程:',os.getpid()) if __n ...

  5. 使用idea创建spring mvc项目图文教程

    使用idea创建spring mvc项目图文教程 前言: 使用惯了eclipse的朋友,如果刚换成了idea或许有些不习惯.但是使用idea之后,就会love上idea了.本文将通过图文讲解怎么通过i ...

  6. 代码审计中的XSS

    0x00 背景 XSS漏洞也叫跨站脚本攻击,是Web漏洞中最常见的漏洞,原理与SQL注入相似,通过来自外部的输入直接在浏览器端触发.XSS漏洞通常被入侵者用来窃取Cookie等,本文以代码审计的形式研 ...

  7. 记一次关于JDBCUtils工具类的编写

    jdbc.properties数据库配置的属性文件内容如下 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost/xxxx ...

  8. The Maximum Unreachable Node Set

    题目描述 In this problem, we would like to talk about unreachable sets of a directed acyclic graph G = ( ...

  9. Exchange Onine功能介绍

    Exchange Online是Office 365中提供的一个邮箱服务.Microsoft Exchange Online是将Microsoft Exchange Server功能作为基于云的服务提 ...

  10. hibernate中lazy的使用

    lazy,延迟加载 Lazy的有效期:只有在session打开的时候才有效:session关闭后lazy就没效了. lazy策略可以用在: * <class>标签上:可以取值true/fa ...