《JavaScript设计与开发新思维》——1.6 JavaScript版本和浏览器支持

1.6 JavaScript版本和浏览器支持

我们已经说明过,JavaScript的核心来自于ECMAScript,ECMAScript在2009年推出了最新的第5版。JavaScript的当前版本是基于ECMAScript 5的1.8.5版本,于2010年7月推出。但是在JavaScript中编程时,版本的问题不如“在什么浏览器中可能发生什么情况”那么重要。大部分现代浏览器都支持ECMAScript 3和ECMAScript 5的一部分(ECMAScript 的版本4从未正式发布)。

“现代浏览器”是你在本书和其他地方常见的词语。粗略地说,现代浏览器支持核心JavaScript、DOM操纵、XmlHttpRequest对象(用于发出Ajax请求)以及基本的CSS。大体上,现代浏览器能够利用当今大部分动态Web技术。这一宽泛的定义包括大部分版本的Firefox、Chrome、Opera和Safari以及IE 6之后的Internet Explorer版本(IE 6多年来已经成为Web开发人员的死敌)。

注意,“现代浏览器”这一宽泛的定义并不只是针对JavaScript所下的,还基于其他先进的功能,例如执行DOM操纵的能力。JavaScript常常用来操纵DOM,但是DOM由W3C管理,不同的浏览器也以不同的方式支持DOM,这意味着在创建动态网站时,考虑的因素不仅是JavaScript支持的差异,还有DOM支持和CSS支持的差异。(如果你选择了HTML5,还有HTML5支持的差异)。

2011年8月1日,Google决定支持更有限的一系列现代浏览器(这里指的是对Web应用的支持,Google搜索引擎当然可以在任何浏览器中使用)。Google的条件很简单—Chrome、Firefox、IE和Safari的当前版本和前一个版本。一方面,这种方法排除了相当一部分Web用户和一些在其他场合被当作“现代”的浏览器。另一方面,这种方法明确了新版本浏览器中的变化,而且,放弃旧的版本也有好的理由—用户也应该不断更新他们的浏览器。
但是,作为一名JavaScript程序员,这些列表对你来说意味着什么呢?知道不同浏览器的不同版本所能做的事情对你有很好的启发,但是并不是JavaScript编程的基础。10年以前,当时还没有这么多种浏览器,JavaScript代码曾经专门用来检查浏览器类型和版本(见前面的代码):是Internet Explorer还是Netscape Navigator?是版本4还是5或者5.5?由于实际上有数千种不同的浏览器类型和版本(考虑到移动设备),不可能以特定的浏览器和版本为目标。而且,由于许多不同的原因,浏览器可能错误地标识自己。即使你能克服这两个负担,这些代码也将在新浏览器的下一次发布、新浏览器版本或者具备内部浏览器的新设备推出时过时。

在现在的现代JavaScript中,代码不为浏览器而为浏览器的“能力”而编写。这一差别看似细微,实际上却非常重要,是现代JavaScript编程基础的一部分。在本书中,你将学到许多编程技术,这些技术所着眼的是“浏览器可能做什么”,而不是“所运行的是什么浏览器”。同样,在开发代码之后,你仍然应该在一定范围(比如Yahoo!或者Google的列表中)的浏览器上进行测试。记住,一个正确设计的网站在不支持的浏览器中仍然应该保持完整的功能,只是不能利用JavaScript和其他现代化工具(例如CSS3和HTML5)所添加的动态功能而已。

时间: 2024-09-17 04:19:51

《JavaScript设计与开发新思维》——1.6 JavaScript版本和浏览器支持的相关文章

《JavaScript设计与开发新思维》——导读

前言 JavaScript是当今使用最广泛的编程语言之一,可以在几乎所有网页(在所有新的网页)上找到.过去的10年,在经济变化和JavaScript使用方式的扩展之间,越来越多的Web开发人员和设计人员希望了解这种语言.具有讽刺意味的是,在这些事实面前,还有少数人对JavaScript是不是一种真正的编程语言表示怀疑.而且,许多书籍仍然用传统的方式介绍JavaScript,把它当作一种用来实现零散的花招和消遣的技术. 编写本书的目的就是要解决这些问题,以一种容易理解的方式,介绍JavaScrip

《JavaScript设计与开发新思维》——第1章 (重新)介绍JavaScript 1.1 什么是JavaScript

第1部分 入门 第1章 (重新)介绍JavaScript 今天的JavaScript是一种被误解的编程语言,从JavaScript所能做到的,到它不能做到的,再到JavaScript不是什么(JavaScript不是Java),关于这种当今Web的核心技术有许多的混淆.不理解一种技术的精髓,就不可能有效地使用它,所以本书的第1章提供对现代JavaScript的一个概要介绍. 本章的大部分篇幅讨论JavaScript的概念,以及它迄今为止的变化历程.接下来,读者将看到有关JavaScript版本以

《JavaScript设计与开发新思维》——1.7 JavaScript编程目标

1.7 JavaScript编程目标 开始一次新的尝试时,不管是第一次学习JavaScript还是为了学习更好.更现代的JavaScript技术,都应该设定一些目标.网站的目的当然是为了让客户(使用Web浏览器的最终用户)查看和使用.如果访问者无法使用一个网站,你作为Web开发人员的工作就失败了.朝着这个目标,网站的功能应该在所有浏览器上都能实现,包括移动设备上的浏览器.非可视化浏览器.禁用JavaScript的浏览器和旧的浏览器.完成这一目标比你想象的更容易,这要归功于渐进增强(progres

《JavaScript设计与开发新思维》——2.5 拼凑一些代码

2.5 拼凑一些代码 利用已经介绍过的一些基础知识,我们继续前进,开始接触JavaScript.当然,我不期望你已经了解JavaScript-这是本书的目的-但是下一个示例阐述了JavaScript的易理解性,并且为第2部分的材料(也即正规训练)提供一些背景知识. 2.5.1 开发基本功能 作为一个简单而实用的例子,我们来创建一个登录表单,然后用JavaScript进行验证.在稍后的章节中,你将学习如何为这个表单应用Ajax,但是在这时添加Ajax可能有点过于复杂.首先创建HTML表单,该表单有

《JavaScript设计与开发新思维》——2.3 为HTML添加JavaScript

2.3 为HTML添加JavaScript 本章阐述一些现实世界中的JavaScript,这些代码使用的概念将在第2部分中更加正式地学习.但是,这里必须介绍一些基础知识,包括如何将JavaScript代码添加到HTML页面,我怀疑你已经知道怎么做了. 为了在一个HTML页面添加JavaScript,可以使用script元素: <script></script>在较早版本的HTML中,这个标记的type属性是必需的,应该取值为text/javascript,在HTML5中不再需要这么

《JavaScript设计与开发新思维》——2.6 窃取这段JavaScript

2.6 窃取这段JavaScript 正如在本章引言中所说,你可以在没有完全了解的情况下使用JavaScript这一事实既是恩赐也是祸害.如果你在一个项目上尝试了JavaScript,而几乎不知道自己在做什么,不必尴尬:许多程序员都这么做过,甚至我也是如此.如果顺利,你能够达成自己的目标.但是更可能的是,你所使用的JavaScript不是最优或者可靠的,这就是你求助本书来掌握这门语言的原因. 最后,我要提出一个有助于学习的建议:形成定期查看在网上找到的其他JavaScript的习惯.我所指的不仅

《JavaScript设计与开发新思维》——1.3 JavaScript不是什么

1.3 JavaScript不是什么 现在你已经理解了JavaScript是什么(希望如此),我们再花点儿时间谈谈JavaScript不是什么.这也可以称作本章的"真相揭露"部分! 第一,JavaScript不是Java.这是一个常见而相当合理的混淆(毕竟两者都以"Java"开始).但是,JavaScript决不是Java.实际上,JavaScript与Java没有关系,它是另一种类型的面向对象语言,又是一种脚本语言(Java是编译型语言),两者的用途也有很大的不同

《JavaScript设计与开发新思维》——2.2 HTML5入门

2.2 HTML5入门 我写这本书的时候已经临近2012年,HTML5是一个奇妙的东西,它已经以某种形式存在了数年,但是不久之前XHTML2.0停止发展之后,HTML5才成为了Web开发的事实标准.HTML5还没有正式地标准化和发布,这意味着不管何时出现HTML5的最终实现方案,无疑都会与现在讨论的HTML5不同.通常,由于Web浏览器普遍存在而又多变,明智的人应该避开这类新事物.但是你可以采取许多方法,在两个方面上都得到最大的益处:使用一些HTML5特性,而又不破坏用户的体验.我们首先来看一个

《JavaScript设计与开发新思维》——2.4 关键的开发方法

2.4 关键的开发方法 在查看代码之前,应该详细地讨论3种开发方法.你选择的方法(可能同时采用不止一种方法)将会影响所编写的代码,更重要的是,影响最终用户的体验. 2.4.1 功能退化 script元素为任何HTML页面添加JavaScript,与此相反的是noscript元素,它用于页面在浏览器不支持JavaScript时提供一个替代信息或者替代内容: <noscript>Your browser does not support JavaScript!</noscript> 如