《JavaScript设计与开发新思维》——1.4 JavaScript和其他常见技术的比较

1.4 JavaScript和其他常见技术的比较

在我开始学习外语之前,从未真正领会英语语法的课程:有时候掌握一种思想只需要一些比较和对照。在接下来的几页当中,我将说明如何将JavaScript与其他你可能已经熟悉的常见技术进行比较,希望你能够更加完整地理解将要掌握的这种语言。

HTML和CSS

HTML(HyperText Markup Language,超文本标记语言)是用于创建网页的技术。(顺便说一句,如果你还不知道这一点,就需要在进一步学习本书之前学习HTML。)HTML和JavaScript一样,两者都以Web浏览器为主要目标,但是相似之处也就仅止于此。HTML是向用户显示内容的方法,JavaScript是建立动态内容的方法。

CSS(Cascading Style Sheets,层叠样式表)也用于Web浏览器,但是它的关注点在于视觉表现。CSS有时可能也被描述为动态的技术,可以在不同的浏览器中应用不同的CSS规则,但是这种动态级别和JavaScript所能提供的不同。CSS和JavaScript一样,也使用DOM(Document Object Model,文档对象模型),这是页面中HTML的表现形式。实际上,jQuery框架使用和CSS类似的选择符进行自己的DOM操纵。

你可能听说过MVC(模型、视图、控制器)设计模式,这是将数据(称作模型)、视觉表现(视图)和动作(控制器)分离开来的软件开发方法。在这些术语中,可以将HTML看作模型(你将要处理的数据),CSS当作视图(表现),而将JavaScript当作控制器(改变和活动的代理)。

PHP

PHP是用于创建动态网站的最流行的语言(也是我喜爱的语言之一)。PHP和JavaScript一样都是脚本语言,这意味着它们都是:

代码对事件作出响应;
通过可执行程序运行脚本。
相比之下,C和C++以及其他语言可以用于编写独立的应用程序。这样的应用程序可以自行采取行动,而不需要考虑事件。

PHP和JavaScript之间的最大不同是,JavaScript主要运行于Web浏览器(也就是客户机),而PHP仅运行于服务器。Web浏览器包含JavaScript引擎以执行JavaScript代码,而Web服务器应用(如Apache)则包含了用于执行PHP代码的PHP模块。JavaScript响应用户和基于浏览器的事件,而PHP则响应基于服务器的事件,如特定页面的请求或者表单的提交。

这两种语言在功能上还有少数重叠的部分(例如,它们都能处理Cookie、生成图像、重定向Web浏览器,但是没有太多进一步的重叠)。但是PHP可以用于动态生成JavaScript,就像它能够用于在运行中创建HTML或者CSS那样(图1.7)。PHP还能够采用过程性或者面向对象的方法编写,而JavaScript只是一种面向对象语言。不过,这两种语言都是弱类型的。

图1.7 PHP能够在Web服务器上动态生成HTML、CSS和JavaScript,然后发送给浏览器

虽然两种语言有很多不同,但是如果你了解PHP,JavaScript应该相对比较容易学习。Web编程人员总是被认为应该同时了解客户端和服务器端的编程,所以对两者都进行学习是合理的。在本书中,PHP将用于任何服务器端需求,例如Ajax示例,但是这些例子并不是PHP大师才能掌握的。

Flash

我将Flash包括在与JavaScript进行比较的技术之列,是因为Flash常常作为JavaScript的替代方案,用于为网页增添动态行为。对用户交互的响应、与服务器的通信等方面做得更好的现代网站,实际上是Web应用程序—常常被称作RIA(Rich Internet Applications,富互联网应用)。RIA主要使用JavaScript或Flash创建。Flash是Adobe公司控制的专利技术,可以两种不同方式(Flash本身不是编程语言)创建。

尽管Flash可以用于许多与JavaScript相同的目的,但是Flash在浏览器中的工作方式(需要一个Flash Player插件)是它们之间关键差别。JavaScript可以通过DOM与HTML页面交互,而Flash内容实际上与HTML页面本身分离(但是JavaScript可以用于Flash和Web浏览器之间的通信)。而且,Flash在移动设备、可访问性和其他非传统Web体验等方面碰到了难题。尽管如此,有证据表明大部分高级的RIA,如游戏、用图表表现的大量数据等,可以在Flash中更快速而可靠地创建。可是,同样不是每个人都能运行Flash……

注意: 在我编写本书的时候,Adobe公司开始发出改变对Flash态度的信号,这意味着这种普遍适用的技术的未来现在变得非常不确定。

ActionScript

ActionScript是Flash和Flex(Flex是用于创建Flash内容的一个框架)的编程语言。ActionScript与JavaScript极其相似,因为两者系出同门—ECMAScript。虽然两种语言都是面向对象的,但是ActionScript是强类型的,而且不是基于原型的(也就是说,你可以在ActionScript中定义类)。同样,如果你了解ActionScript,那么掌握JavaScript就会比较容易,反之亦然。

时间: 2024-11-03 14:48:26

《JavaScript设计与开发新思维》——1.4 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设计与开发新思维》——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设计与开发新思维》——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设计与开发新思维》——1.7 JavaScript编程目标

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

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

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

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

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