`
stylezhao
  • 浏览: 6646 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JavaScript工业时代的来临

阅读更多

JavaScript工业时代的来临

半年前,当我对JavaScript还停留在只认识这几个字母的时候(again, XD),我在寻找学习JavaScript的学习途经,jQuery无意闯入我的眼帘,我惊叹于它的小巧和易理解性,在我还不懂JavaScript基本语法的时候,我已经能用它做很多对我来说是不可思议的事情。由此也认识了它的作者John Resig, 并关注其第一本书Pro JavaScript Techniques(projs).

其实把这篇文章归类于书评让我心戚戚焉,因为projs里面的某些高级主题作为入门者的我还不能理解,实属“无法评论”,若夸夸其谈恐会贻笑大方,虽如此,元旦放假期间还是硬着头皮翻完,虽不能一一理顺,但收获也不少。

比起ppk on JavaScript(ppk) 来,我的第一感受是,projs太“高级”了。看完ppk后,你可能还不能理解现在流行的那些框架是如何工作的,因为ppk压根就不讲 JavaScript的特性比如对象的构建,继承等,最重要的是,很多框架的根基——闭包。虽然我还不能完全理解这些特性,但有一种豁然开朗的感觉,并开始了解,创建可复用的,复杂的JavaScript应用的基础,不能不了解这些特性。遗憾的是,这些特性的介绍一直都只在网上零散流行(比如牛人的Douglas Crockford, Dean Edwards之类的个人网站),甚至是权威的犀牛书也就是一笔带过,并没有一个系统的概述。如今,Pro JavaScript Techniques就是一本应势而生的书,系统概述这些特性,看过后给您的感觉,我再说一次,豁然开朗。最重要的是,它能改变你的看法,如果你还认为JavaScript只是一门小打小闹的玩具语言。JavaScript实在还有很多“隐藏”的特性需要去挖掘,并使用它们来构建工业级的应用。

projs不厚,但含金量实在不低。它的核心就三部分:专业JavaScript开发、Unobtrusive JavaScript和Ajax。其实我个人看法,精华应该是第一部分。有人说JavaScript是基于对象但不是面向对象的语言,因为它没有传统面向对象语言的一些概念比如类。但不是说就不能不能在JavaScript里面向对象编程,因为JavaScript提供的高级特性更灵活,因为灵活所以也可能更容易出错和不易掌握。projs系统总结JavaScript如何面向对象编程,虽然大部分例子或者方法都来源于网上的牛人,但能够以系统的成文书籍来向读者介绍,我想这应该是世界上第一本。或许是第二、三部分个人有所了解并在一定程度生熟悉的缘故,个人觉得应该是John的经验分享了,概述十分入理,他的例子,尤其是在JavaScript and CSS的章节里(其实也是我比较能看懂的一章,呵呵),写得十分优雅和巧妙,其功力可见一斑。

因此projs的第一部分实属JavaScript进阶必看,而第二第三部分可以偷学很多有用的技巧,总的来说,是一本可以打四星半的好书。在JavaScript进入工业时代,您需要这Pro JavaScript Techniques来引导您开发更“工业级”的JavaScript。

转:http://realazy.org/blog/2007/01/03/pro-javascript-techniques-review/

分享到:
评论
1 楼 stylezhao 2007-03-15  
<div class='post'>
<h1 class='posttitle' id='post-126'>JavaScript的目的</h1>
<p class='postmeta'>作者:<a href='http://realazy.org/blog/'>Realazy</a> </p>
<div class='postentry'>
<p>从今天起,我将陆续将 <a href='http://www.quirksmode.org/book/'>ppk on JavaScript</a> 的读书心得发布到这个blog上。<a href='http://www.quirksmode.org/'>ppk</a>是我所景仰的一位web开发者,原因无它,只是因为作为一个JavaScript的开发者来说,他涉及的领域包括web标准,可用性,无障碍等,正是其他开发者所不关注或者故意忽略的。并且,他写了很多案例测试不同的浏览器,总结出JavaScript的接口(API)兼容性,成为JavaScript开发者重要参考资料,几年如一日,这种钻研精神是很多人所缺乏的。</p>
<p>ppk在今年9月出版了他的书,我从去年起就在等的书。今天拿到手,迫不及待地把第一章阅读完毕。果然让人充满惊喜,他的功力非同一般。虽然只是一个初学者,但我认为我已经走在正确的学习道路上。我想,我若能将学习心得分享,能让正在学习的人看到,可以一起交流一起进步,尽管我不敢确保你能从我这里得到什么启发,但我可以确信,我这些笔记会比你拷贝粘贴代码的学习方式更正确。</p>
<p>这本书有十章,章名都简洁明了,分别是:目的,背景,浏览器,准备,核心,BOM, 事件,DOM, CSS更改和数据获取。从来没有一本书能如此简洁地明确JavaScript的方方面面,因此学习不会有太大负担。前言不宜过多,下面就开始我的第一章学习笔记。</p>
<p>开篇宗义:JavaScript的目的是,为网页<strong>增加特别的一层可用性</strong>。听起来很简单,但这条黄金定律经常被人误解。就算编写有用的JavaScript, 开发者可能还是没能结合适当的情景:Web标准运动发展下,与当代无障碍的HTML页面的配合。更为不妙的是,有些开发者不是为网页增加一层可用性,而是用整层取代之,后果是,如果浏览器不支持JavaScript, 网站就完了。</p>
<h2>概念概述</h2>
<p>JavaScript是一门由浏览器解释的脚本语言。它通过在客户端而不是服务器端处理某些交互,比如表单验证,创建新菜单来给网站增添可用性。传统的网页交互是,客户端的一举一动都必须经过服务器端的出来才能反馈回来,漫长的等待会让用户崩溃。而JavaScript可以在客户端代替服务器端做某些事情(最明显的,表单验证),从而提高用户体验。</p>
<p>随着时代的发展,JavaScript能够处理越来越多的交互。问题出现了,JavaScript能做这么多事情,到底要多用还是少用?这就有了富与瘦的对决。是整个页面都用JavaScript来控制交互还是只增加些许的JavaScript来增强可用性?就是说,尽可能地使用 JavaScript还是有所节制,甚至不用?</p>
<p>瘦客户端很大程度上依赖于客户端-服务器的通讯,而富客户端尽可能限制额外的数据通讯。</p>
<p>哪种方式更好?尽管富客户端带来一些可用性益处,但瘦客户端可能是更“标准”的JavaScript用法。Web被认为是文档集合,而不是界面集合。最明显的证据是,浏览器有后退前进的功能让你在文档中跳转而界面会有么?浏览器可以收藏(书签)文档而界面可以么?从无障碍来说,瘦客户端也更少出错。</p>
<p>这种非平衡性是很难解决的。富客户端当然也可以在更高级的界面做到前进后退,或者收藏,也可以做到完美的无障碍。这必须需要大量的额外工作,但不是每个项目都有超出预算的时间或金钱。此外,太过专注于可用性而忽略无障碍也是一个问题。</p>
<p>那么JavaScript的目的是为富客户端还是瘦客户端服务?答案是:看情况。得看你的网站,你的受众,你的JavaScript水平。</p>
<h2>技术概述</h2>
<p>JavaScript分为六个方面,分别是核心(Core),浏览器对象模型(BOM),事件(Events),文档对象模型(DOM),CSS变更和数据获取(XMLHttpRequest)。</p>
<p>上古时代,NetScape领头之时,NetScape3是事实标准。</p>
<p>当代却没有这么简单。ECMA标准化JavaScript Core, W3C标准化DOM,而BOM尚在WHAT-WG的标准化中,W3C也刚有了XMLHttpRequest的第一份草稿。今天,BOM依然遵循 NetScape3的事实标准,而XMLHttpRequest还是遵照Microsoft的原始规范。</p>
<p>JavaScript的目的在于为网站增加可用性,而不是破坏用户的隐私和安全。因此JavaScript不允许读写用户的文件(cookies除外),采取同源策略,只允许来自相同域的交互。不允许读取历史记录,不能为上传文件的表单设置值,由JavaScript控制的窗口关闭需经用户确认,由 JavaScript打开的窗口不能小于100×100的窗口,不能移出屏幕之外。</p>
<h2>JavaScript的历史</h2>
<p>探寻历史才能让我们知道JavaScript为什么会被误解得如此深。JavaScript的创造者是Brendan Eich,首次在NetScape 2中实现。它的目的是创建一门足够简单的语言让开发者能容易地为网页增加交互,只要把代码拷贝过来调整一下就可以。这确实令人赞叹,很多 JavaScript开发者是从拷贝粘贴开始的。</p>
<p>不幸的是JavaScript生错了名字,也生错了语法。最初它叫LiveScript,但1996年的时候Java炙手可热,NetScape想搭顺风车,于是某产品经理(我想知道她/他是谁,呵呵),命令更名,命令Brendan Eich让“Javascript像Java”。这让很多人误认为JavaScript是Java的低级版,不能引起严肃程序员的关注。</p>
<p>1996年之时,NetScape 3是王,Microsoft只能照抄。这是一个难得的和谐期,当然,那时候浏览器比起现在来“瘦”了,仅限于表单验证,鼠标轮换的一些小花招而已。</p>
<p>接下来就是影响深远的浏览器大战了。为了争夺市场,两家浏览器纷纷实现不同的东西,谁都想成为事实标准。最有名的就是NetScape 4的<code>document.layer</code>和IE 4的<code>document.all</code>(忘记它们吧!)。它们让DHTML流行起来。</p>
<p>1999年Microsoft以推出良好支持CSS和DOM的IE5胜出,NetScape的让位终于有足够的时间让一场革命发生,那就是CSS。WaSP首先从CSS入手,而很多专家也发现/发明了许多浏览器的补救办法,让这场革命成为可能。</p>
<p>2003年,一些先锋们在CSS革命的影响下开始探索新的JavaScript风格,更多地关注无障碍,改观人们对它的坏名声,那就是 unobstrusive——把JavaScript从HTML结构层分离出来,遗憾的是,那些在浏览器大战存活下来的程序员可能还没有发现这条新道路。</p>
<p>2005年,Ajax热潮为JavaScript社区注入新的血液。但某些方面,Ajax太像DHTML了,无障碍,是很多Ajax应用的难言之隐。这个热潮趋向于关注技术(如何Ajax),而可用性和交互(为何Ajax)却被低估。最后,各种肿胀的库(现在称为框架)迅速发展起来。</p>
<p>Ajax依然全速前进,但这会像DHTML一样结果,人们渐渐失去兴趣,它们会土崩瓦解。</p>
<p>JavaScript兴衰史好像有一定的“定律”支配,我们能打破这个怪圈吗?不管如何,JavaScript开发者在寻找各种酷代码和华而不实的框架之外,更应该调整自己的行动,让JavaScript运行在:标准兼容的,无障碍的网页中。 </p>
<p> </p>
<p><font>http://realazy.org/blog/2006/11/19/ppk-on-javascript-study-note-part01/</font></p>
</div>
</div>

相关推荐

    head first JavaScript源码

    《Head First JavaScript源码》是2010年出版的一本中文版JavaScript学习书籍的源码,这本书以其独特的视觉设计和易理解的方式深入浅出地介绍了JavaScript编程语言。JavaScript是一种广泛应用于网页和网络应用的脚本...

    JavaScript语言精粹完整版

    《JavaScript语言精粹》作为一本深入浅出讲解JavaScript编程语言的经典之作,对于想要提升自己JavaScript技能的开发者来说,无疑是一份宝贵的资源。本书由Douglas Crockford所著,他不仅是JSON格式的创始人,也是...

    javascript帮助文档javascript帮助文档

    javascript帮助文档javascript帮助文档javascript帮助文档javascript帮助文档javascript帮助文档javascript帮助文档javascript帮助文档javascript帮助文档javascript帮助文档javascript帮助文档

    基于Java及JavaScript的工业开发工具集设计源码

    该工具集是一款专注于工业应用的Java及JavaScript开发源码,总计包含54个文件,其中Java源文件26个,JavaScript文件11个,SQL脚本3个,JSP页面3个,PNG图像2个,以及其他类型的文件如.gitignore、LICENSE、Markdown...

    JavaScript权威指南(JavaScript犀牛书一本)

    《JavaScript权威指南》是JavaScript编程领域的一本经典之作,由著名技术作家David Flanagan撰写,被誉为"JavaScript犀牛书"。这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面...

    JavaScript文档

    本资源包包含了多个关于JavaScript的重要参考资料,包括“JavaScript权威指南(英文版).chm”、“javascript5.5.chm”、“css2gb.chm”以及“JavaScript对象与数组参考大全 .chm”。 首先,我们来看“JavaScript权威...

    JavaScript基础语法(ppt)

    JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)...

    JavaScript函数(源代码)

    JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)...

    VS2015安装证书,JavaScript_ProjectSystem.msi,JavaScript_LanguageService.msi

    在这个场景中,我们关注的是VS2015的安装过程中涉及到的证书问题以及两个特定的组件:JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi。 首先,关于“VS2015安装证书”,这通常是指安装过程中需要...

    JavaScript学习指南 高清 PDF

    JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨...

    JavaScript课堂习题答案

    JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案...

    Javascript 程序设计基础教程(第2版)_习题答案

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,它主要负责网页的动态效果和与用户的交互。本教程的第二版习题答案旨在帮助学习者深入理解JavaScript的基本概念、语法和功能,以提升编程技能。 首先,...

    javaScript api

    JavaScript API 是一种重要的编程资源,它为开发者提供了与JavaScript语言交互的接口和工具。这个离线版的JavaScript API 指南,以CHM(Compiled Help Manual)格式提供,是开发者学习和查阅JavaScript相关功能和...

    深入理解JavaScript系列

    深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 深入理解JavaScript系列(2):揭秘命名函数表达式 深入理解JavaScript系列(3):全面解析Module模式 深入理解JavaScript系列(4):立即调用...

    JavaScript手册 JavaScript手册

    JavaScript是一种广泛应用于网页和网络应用的编程语言,尤其在客户端脚本方面扮演着核心角色。JavaScript手册是学习和掌握这门语言的重要参考资料。手册通常包含了语言的基础语法、数据类型、控制结构、函数、对象、...

    Free JavaScript Editor 4.7 javascript编辑器 天涯浪子

    Free JavaScript Editor编辑器是一个先进的Java脚本编辑器,验证器和调试器对于初学者和专家。 免费的JavaScript编辑器是用于专业编辑JavaScript代码和创建动画和其他特殊效果网页使用DOM中,使用DOM, DHTML, CSS, ...

    [JavaScript权威指南(第6版)]

    《JavaScript权威指南(第6版)》主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节完全重写,增加了当今Web开发的最佳实践的内容,新增...

    Eloquent_JavaScript 3rd

    Eloquent JavaScript 3rd, Eloquent JavaScript 3rd Eloquent_JavaScript_3rd

    javascript试题(附答案)

    JavaScript是一种广泛应用于网页和网络应用的编程语言,尤其在客户端脚本方面扮演着核心角色。这份"javascript试题(附答案)"是为初学者设计的,旨在帮助他们更好地理解和掌握JavaScript的基础知识。 一、变量与数据...

Global site tag (gtag.js) - Google Analytics