- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaScript挺入服务器端开发语言序列
JavaScript挺入服务器端开发语言序列
Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始。也许你还不知道,JavaScript现在已经成了一门可编写出效率极高的、可用于开发产品级Web服务器的出色语言。
尽管JavaScript已经出现很长一段时间了,运用也很广泛,但它一直只是局限在浏览器的范围内。与此同时,一些框架试图将JavaScript引入到服务器端,这些框架有Aptana Jaxer,(采用了SpiderMonkey的 JavaScript解释器)和Helma(基于Rhino),但自身的不足又制约着它们的普及。
技术生态圈
当我们选择某种技术编写应用程序时,我们不只是选择编程语言,还同时选择了其相应的库文件。如果一种语言有一个活跃的社区以及大量可用的库,那么你很容易用更短的时间编写出你的应用程序。
所有的现代编程语言都有一个标准库以及一个优秀的第三方代码库组成的技术生态圈(ecosystem)。Python是一种众所周知的以batteries included为特色的语言,而且有一个优秀的软件包生态圈形成的Python Package Index (PyPI),Ruby和Perl也是这样的。不幸的是,JavaScript却并非如此。
直到最近,你才能在没有SpiderMonkey, V8, 或 JavaScriptCore这些JavaScript解释器的情况下,运行服务端的JavaScript代码。但是没有库的支持,你就无法多快好省地做出什么实际的东西来。不过,在2009年JavaScript社区就意识到需要作出一些改变了。Kevin Dangoor在他的博客中说,虽然JavaScript是一种很通行的语言,但却没有形成标准的库API,也没有对外部库进行打包和制定统一的调用方法。由于没有通用的API,每个服务端的JavaScript项目不得不各自为政,这不利于跨项目的库和工具形成一个更庞杂的JavaScript生态圈。
因此Dangoor启动了ServerJS项目。其宗旨是制定一个大型的、可兼容的JavaScript生态圈所需的API。推出一周后内,ServerJS小组就有了224名成员,邮件列表里也有了653条信息。显然,Dangoor已经引起了开发人员的注意。该项目后来改名CommonJS,以更好地反映其团结JavaScript社区、为浏览器端和服务器端制定统一API的这一伟大目标。
同时,也是在2009年,Ryan Dahl还启动了一个名叫Node的JavaScript全新框架。Node又名Node.js或Nodejs,后面这两个名称更易于搜索。Node包含了Google的V8 解释器,并将其与CommonJS的库文件API捆绑起来,形成了一个可以不依赖浏览器而使用的完整环境。
在2009年,还有第三件关于JavaScript的事值得引得人们的注意。那就是以JavaScript为议题的会议开始出现。Chris Williams 和 Iterative Designs 创立了JSConf,这是JavaScript开发者的第一个专业会议。
突破性的演讲
虽然Dahl在2009年初就启动了Node项目,但是它真正出彩是在11月的柏林JSConf上,Dahl作了一个关于它的演讲。从那以后,web开发人员对Node的关注明显增加,其关注度还在不断攀升。在这两次JSConf中,Dahl是唯一一位在演说结束后享受到起立鼓掌的发言人。在满堂的同行们面前展示最新的技术,这无疑是令人兴奋不已的事情。
由于服务器上的JavaScript已经说了多年了,你可能很想知道Node究竟有什么大不了的。是什么让它如此特别?这是因为使用Node编程,自始至终专注的是事件驱动I/O。一般说来,实现高性能的服务器主要有以下三种编写方式:
1. 使用多进程
2. 或者使用多线程
3. 使用单线程异步事件
Node是一个以事件为基础的框架,并恪守非阻塞API的策略。在Java, C#, Perl, Python, Ruby或是PHP这些语言中,使用多进程或多线程程序是一种更为通行、也更传统的方式。虽然用这些语言也可以实现基于事件的编程,但却不符合这些语言的习惯。(Twisted或Tornado是基于事件的Python框架,Ruby里则有EventMachine)
实例
虽然在其它语言中,基于事件的编程是一种不太常见的风格,但却是编写面向浏览器JavaScript代码的首要方式,Node就沿袭了这一传统。不论是写面向浏览器的代码还是用Node写服务端代码,都可以用事件的编程方式来实现。例如,下面是jQuery的文档中所介绍的如何发起一个异步(即Ajax)数据请求:
$.get(ajax/test.html
您可能关注的文档
最近下载
- 北师大版六年级数学上册第二单元测试题(共4份).doc VIP
- 2025年最新人教版九年级(初三)数学上册教学计划及进度表(新课标).docx
- 医院放射诊疗事故应急处置.pptx
- 2025年泰安市中心医院医护人员招聘参考题库含答案解析.docx VIP
- 贵州某二水电站进水口工程引水隧洞混凝土衬砌施工技术方案.doc.doc VIP
- 浙教版八年级上册数学第二章 特殊三角形(含答案).pdf VIP
- 机电工程质量通病防治手册.pptx VIP
- 儿童呼吸道合胞病毒感染的症状与治疗方法(1)PPT课件.pptx VIP
- D-Z-T 0205-2020 矿产地质勘查规范 岩金(正式版).docx VIP
- CHCC2025第26届全国医院建设大会:消毒供应中心质量控制指标(2024年版)解析.pdf VIP
文档评论(0)