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

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>

相关推荐

    简洁线条工业设计企业网页模板_简洁 线条 工业设计 设计 企业 整.zip

    随着数字化时代的到来,企业网页成为工业设计公司展示自身品牌形象、产品特点及设计理念的重要窗口。因此,一个精心设计的企业网页模板,不仅能够提升用户体验,还能够体现企业的专业水准和创新精神。 简洁线条是...

    自动化时代已经到来,您的员工何去何从?.pdf

    随着人工智能、机器学习、机器人技术的不断发展,自动化正在以前所未有的速度改变着工作环境,这使得“自动化时代已经到来,您的员工何去何从?”成为一个值得深入探讨的话题。 首先,自动化的主要优势在于效率提升...

    大气机械工业生产类企业网站模_网站整站打包下载.zip

    随着工业技术的快速发展,机械工业作为国民经济的重要组成...随着信息化时代的到来,拥有一个高质量的官方网站已经成为企业发展的必然选择。而大气机械工业生产类企业网站模板的推出,无疑为这一需求提供了完美的答案。

    软件开发工具课程设计报告---软件开发的现状及发展.docx

    随着互联网的普及和信息时代的到来,软件开发工具已经从简单的代码生成器和汉字处理工具,成长为集分析、计划和集成开发于一体的综合平台。当前的软件开发不仅仅是关于编写代码,而是一个涉及规划、设计、实施和维护...

    Logifox:电子废物的终结已经到来-项目开发

    "Logifox:电子废物的终结已经到来-项目开发" 提供了一种创新的解决方案,它结合了智能托盘、实时监控应用程序以及低功耗物联网(IoT)技术,旨在优化逆向物流过程,从而更加高效地管理和回收电子废物。 首先,我们...

    winCC组态手册

    随着工业4.0时代的到来,未来WinCC将会在智能制造、物联网等方面发挥更加重要的作用。 以上是对WinCC组态手册的主要知识点进行了较为详细的阐述。希望这些内容能够帮助您更好地理解和运用WinCC软件,在工业自动化...

    设备故障管理系统》是一套针对各企业工厂车间设备管理部门及班组实现设备故障信息化管理的软件.zip

    随着工业4.0时代的到来,企业对生产效率和设备管理提出了更高的要求。特别是在设备密集型的工厂车间,设备的稳定运行对整个生产流程的稳定性与安全性具有决定性的影响。在此背景下,《设备故障管理系统》应运而生,...

    基于Java的洗衣店管理系统的设计与实现(JAVA+MYSQL).docx

    2. 技术背景:随着信息化时代的到来,数据管理和网络化服务成为行业升级的关键。洗衣店管理系统能够整合业务流程,提高工作效率,降低人力成本,提升客户满意度。 二、系统目标与功能设计 1. 目标:构建一个高效、...

    机械项目结算管理系统》是为机械工程项目管理开发的一款软件.zip

    随着工业4.0的到来,机械化和自动化技术的飞速发展,工程项目的复杂度不断攀升,传统的项目管理方式已经无法满足现代机械工程的需求。因此,开发一款高效、智能化的机械项目结算管理系统成为了时代的必然要求。...

    基于WEB的仓库管理系统的设计与实现——论文.pdf

    随后,全球信息网络的广泛普及和信息共享的兴起,标志着"全球信息网络革命"的到来。这使得我们进入了计算机信息管理领域的激烈竞争时代,计算机已经成为日常生活中不可或缺的一部分,就像自行车和汽车一样普遍。 ...

    基于Java核心的MES生产管理控制系统全栈设计源码

    本篇知识内容将围绕“基于Java核心的MES生产管理控制系统全栈设计源码”进行深入讲解...随着工业4.0时代的到来,MES系统的作用将越来越重要,而基于Java核心的MES系统全栈设计,无疑是顺应这一发展趋势的先进解决方案。

    从The Transistor到The WEB浏览器:灵感来自George Hotz

    C++等高级编程语言的出现,使得非专业人员也能编写复杂的软件,推动了PC时代的到来。 3. **互联网的诞生**:互联网的诞生源于 ARPANET,随后TCP/IP协议的标准化,使得全球范围内的信息交换成为可能。HTTP协议和HTML...

Global site tag (gtag.js) - Google Analytics