首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

前    言

如果你想从零开始学习JavaScript——它的含义、功能,以及如何综合使用它和其他技术(如CSS和HTML),那么你就选对书了。如果你已经对JavaScript有了一定的经验,但还想了解一些在最新的知识,那么你也选对了书——在最近几年里,JavaScript开发已经改变了许多。

在20世纪90年代中后期,JavaScript第一次开始应用到Web开发的时候(在1996年首次被Netscape 2支持),它很快就遭遇了许多批评和抱怨。这有很多原因——即使最好的时候,浏览器的支持也很一般,而最糟的时候,针对不同的浏览器(浏览器之争的主角是Netscape 4和IE 4)需要以不同的方式实现各种不同的功能。这就导致开发人员如果想获得跨浏览器平台的支持,就不得不编写完全不同的网站版本,或者纵容杂乱的代码分叉。

此外,还有很多人为因素。JavaScript的坏名声,开发人员和浏览器生产商的过错几乎要对半开。那时开发人员喜欢用JavaScript实现看上去很酷的特效,但是引起了许多可用性和可访问性的问题(这就是所谓DHTML,那时的一个流行词指的是使用JavaScript、CSS和HTML应用程序来产生动态效果)。如果由于某种原因JavaScript不可用或者用户要使用屏幕阅读器,那么网页就会完全失效。而且许多Web开发人员在不懂实际工作机理的情况下,就把一些脚本复制并粘贴到自己的网站中,导致了更多说不清楚的可用性和代码维护的问题。

正如我在前面所说,现在事情已经发生了改变。浏览器的支持性现在已处于可控级别,现代的浏览器大都使用DOM(文档对象模型)和其他构造的相同实现,而且现代技术也很大程度上都考虑了可访问性等。学完本书后,你会发现像DOM脚本这样的现代技术也都是围绕着下面的假设来建立的:既要将结构(在标记文件中)和表现(在CSS文件中)分离,也要分离JavaScript文件中的行为(而不是遍布在标记文档中)。JavaScript并不是只能做恶,它可以用来对网站编码,使用户体验更丰富,而在JavaScript不可用的时候也不会完全失效。这叫做分离式JavaScript(unobtrusive JavaScript) ——JavaScript增强应该被看作是那些能够使用它们的用户的一种额外好处,而不是运行一个网站所必需的特性。

如果以前使用过JavaScript,那么阅读本书时你要准备好接受一种新思想。如果你完全是刚刚学JavaScript,那么可以松一口气,很幸运你没有刚说过的JavaScript早期开发的经历!

本书内容

JavaScript可能是在Web开发中被低估且被滥用最严重的语言,但是如果正确使用,它会是一种非常有价值的工具。在接下来的章节中,我们会介绍JavaScript的基础和现代的JavaScript技术,包括用于动态行为和样式控制以及事件处理的DOM编程。接着,我们会学习一些JavaScript最基础的应用,包括数据验证、图片和窗口操作,以及表单和导航菜单的动态增强。

接下来,我们把注意力转移到与JavaScript相关的、可能是目前最热的一个词语——Ajax。Ajax代表异步JavaScript与XML(Asynchronous JavaScript and XML),这有点儿名不符实,因为这种技术不必包括XML,而且可能经常和HTML一起使用。但是不要只关注这一点,它主要指在网页上创建运行的动态功能,因为不用刷新整个页面,网页的各小部分就可以更新,例如,在线的邮件应用程序中的联系人信息(Gmail是我们最容易想到的例子)。现在实现Ajax最常用的方式就是使用XMLHttpRequest(XHR)对象。它非常流行,因为它允许创建拥有丰富功能且其外观和运行方式都和桌面应用程序类似的Web应用程序。但是Ajax确实也带来了它自己的一系列问题,这个也会在书中涉及。

接下来是一个综合的案例研究,它展示了一个成熟的含有现代JavaScript增强的Web应用程序。

最后,第11章重点讲解现代JavaScript开发的另一个重要的方面——使用第三方JavaScript解决方案。当你开发JavaScript应用程序的时候,不需要每次都对所有的东西从头编码。和创建自己可复用的对象和函数一样(这个会在本书前面几章中讲到),在Web上还有许多第三方资源,你可以下载并在自己的应用程序中使用。从函数库到成熟的API(应用编程接口),许多资源都可以供你使用。其中,我们重点介绍了jQuery、Google Maps API、Yahoo API等。

社区和支持

JavaScript是什么?你用它来做什么?询问拥有不同技术背景或面向设计的开发人员的时候,你很可能会得到完全不同的答案。本书会教你如何成为一个可以和所有这些开发人员一起工作的JavaScript开发人员,而且通过使用JavaScript来增强网站、构造Web应用程序,甚至不用强迫用户改变他的使用方式或者进行硬件设置就能扩展软件,使他们对你刮目相看。

本书所提供的所有代码例子都可以在网站http://www.beginningjavascript.com下载和测试,在那里你还会发现更多的信息、勘误以及其他例子(Apress出版社在http://www.apress.com上也提供了勘误表和可下载的代码)。

但是遇到问题时该怎么办呢?你有3种选择。第一,可以通过网站(http://wait-till-i.com)通知我或者把问题通过邮件发送到Apress(详细的联系地址在http://www.apress.com上)。

第二,在因特网的一些JavaScript论坛里求助,其中比较好的有下列几个。

l    evolt的thelist论坛:http://lists.evolt.org/mailman/listinfo/thelist。

l    Mozilla JavaScript论坛:http://developer.mozilla.org/en/docs/JavaScript。

l    Webdeveloper.com JavaScript论坛:http://www.webdeveloper.com/forum/forumdisplay.php?f=3。

l    comp.lang.javascript FAQ:http://jibbering.com/faq/。

这些论坛经常有许多像你这样寻找问题答案的人光顾,还有许多非常有经验的JavaScript高手,他们乐于帮助社区里的人解决问题。要确保你的问题经过了思考,不要只粘贴你的代码,然后就问“这里什么地方有错误?”。也可以看一下论坛里过去的帖子,或许你的问题其他的人已经问过并得到解答了。

最后一个,阅读博客!许多天才的JavaScript高手喜欢通过博客和大家分享他们的思想、创新以及经验,其中包括我。这是获取新思想非常好的一种方式。我推荐你阅读下面的博客。

l    Jeremy Keith:http://www.adactio.com。

l    Simon Willison:http://simon.incutio.com/。

l    WaSP DOM脚本编程任务组:http://www.webstandards.org/action/dstf/。

l    Stuart Langridge:http://kryogenix.org/days/。

l    Robert Nyman:http://robertnyman.com/。

l    Jon Snook:http://www.snook.ca/jonathan/。

你现在是一个非常活跃的社区的一份子了。除了可以学习许多有用的东西,你还会遇到各种各样有趣的人,而且这种学习方式会很快乐!让我们继续快乐地学习吧——不断地阅读……

致谢

感谢在完成本书的过程中所有帮助过我的人——Chris、Beth、Ami、Katie以及Apress出版社的Charles和Jon Stephens。我学到了许多,尤其是认识到了写书要做的工作比我想象的要多得多。

还要感谢那些通过解决问题并询问更多功能而由此帮助我的人——WaSP DOM脚本编程任务组的成员Stuart Colville、Matt Warden、Jens Grochtdreis、Ingo Chao、Volkan Ozcelik以及许多在evolt列表、CSS讨论区和我的博客上留言的朋友。

感谢以前在Agilisys的同事和现在在Yahoo的同事所做的测试和支持,还要感谢Good for Food、Spence、Pizzadelique以及Belle Epoque饭店为我提供了食物,让我可以保持健康的身体(还要感谢这些地方的邻居所提供的无线接入点)。

最后,我还要感谢你,因为购买本书说明有人真地想学习JavaScript,而不只是复制和粘贴脚本。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论