脚本语言
常见的客户端脚本语言有:javascript,VBScript;
常见的服务器端脚本语言有:PHP,jsp,asp。
历史
1995 —- JavaScript
1997 —- ECMAScript : Euripean Computer Manufacturers Association(欧洲计算机制造商协会)
本质
一种专为与网页交互而设计的脚本语言
局限性
JavaScript组成部分
- 核心(ECMAScrip)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
ECMAScript
- ECMA-262只是定义这门语言的基础,而在此基础上可以构建更完善的脚本语言。
- 常见的web浏览器只是ECMAAcript可能实现的宿主环境之一。
- 其它的宿主环境包括Node(一种服务器端JavaScript平台)和Adobe Flash。
- ECMA-262组成部分:
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 对象
ECMAScript的版本
ECMA-262的最近一般第5版,发布于2009年
ECMAScript兼容
要想兼容ECMA-262:
1.支持ECMA-262描述的所有“类型、值、对象、属性和函数以及程序句法和语义”
2.支持Unicode字符标准
兼容扩展:
1.添加更多的类型、值、对象、属性和函数
2.添加”程序和正则表达式语法”
web浏览器对ECMAScript的支持
2008年,IE、Firefox、Safari、Chrome、Opera全部做到了与ECMA-262兼容。
文档对象模型(DOM)
文档对象模型:是针对XML但经过扩展用于HTML的应用程序编程接口(API)
DOM把整个页面映射为一个多层节点结构。
DOM1级
主要目标:映射文档结构
组成:
- DOM核心(DOM Core)–如何映射基于XML的文档结果,一遍简化对文档中 任意部分的访问和操作。
- DOM HTML–DOM核心的基础上加以扩展,添加了针对HTML的对象和方法。
DOM2级
扩展:
对鼠标和用户界面事件、范围、遍历(迭代DOM文档的方法)等细分模块
通过对象接口增加了对CSS(Cascading Style Sheets)的支持。
新模块:
- DOM视图(DOM Views):定义了跟踪不同文档的接口
- DOM事件(DOM Events):定义了事件和事件的处理接口
- DOM样式(DOM Style):定义了基于CSS为元素应用样式的接口
- DOM遍历和范围(DOM Traversal and Range):定义了变量和操作文档树的接口。
DOM3级
扩展:
- 引入了统一的方式加载和保存文档的方法–DOM Load and Save
- 新增了验证文档的方法 DOM Validation
- DOM核心扩展,支持XML1.0
浏览器对象模型(BOM) Browser Object Model
支持可访问和操作浏览器窗口的浏览器对象(BOM)
只处理浏览器窗口和框架
html5增加了BOM规范
- 弹出新浏览器的功能
- 移动、缩放和关闭浏览器窗口的功能
- 提过浏览器信息信息的navigator对象
- 提过浏览器加载页面的详细信息的location对象
- 提供用户显示器分辨率详细信息的screen对象
- 对cookies的支持
- 想XMLHtpRequest和IE的ActiveXObject这样的自定义对象
在HTML中使用JavaScript
<script>
属性
- async可选:表示立即下载脚本,但不应妨碍页面中的其它操作。h5中增加,只支持外部脚本,不保证按照指定它们的先后顺序执行。为了异步的加载页面其它内容。异步脚本不要在加载期间修改DOM。
- charset可选:表示通过src属性指定的代码的字符集。
- defer可选:表示脚本可以延迟到文档完全被解析和显示之后再执行。保证它们按照顺序执行。
- language 已废弃。
- src可选:表示要执行代码的外部文件。
- type可选:表示编写代码使用的脚本语言的内容类型。
使用方式:
1.直接在页面中嵌入JavaScript代码
2.包含外部JavaScript代码
标签的位置
放在<head>
元素中
优点:把所有外部文件(包括CSS文件和JavaScript文件)的引用都放在相同的地方。
缺点:
1.在文档的
元素中包含所有JavaScript文件,必须等到全部的JavaScript代码都被下载,解析和执行完成以后,才能开始呈现页面的内容。2.导致浏览器在呈现页面时出现明显的延迟,延迟期间浏览器将是一片空白。
放在<body>
元素中页面的内容后面
优点:在解析包含的JavaScript代码之前,页面的内容将完全呈现在浏览器中,浏览器显示空白页的时间缩短而感到页面打开的速度加快。
延迟脚本 defer属性
异步脚本 async
文档模式
混杂模式(quirks mode)
标准模式(standards mode)
<!-- HTML 5-->
<!DOCTYLE html>
准标准模式
<noscript>
元素可以指定在不支持脚本的浏览器中代替显示的内容,但是在启用了脚本的情况下,浏览器不会显示<noscript>
元素中任何内容。