设为首页 收藏本站
查看: 564|回复: 0

[经验分享] NodeJS与Javascript时代

[复制链接]

尚未签到

发表于 2017-2-21 12:14:45 | 显示全部楼层 |阅读模式
  
如果你一直在关注互联网的相关技术,你应该会有这样一种感觉,web技术正在发生着变革,虽然我们不愿相信,但一个事实已经越来越清晰的摆在了眼前:LAMP组合的时代将要成为历史,在web诞生的二十年间,它影响了互联网上的内容、协议、服务器以及客户端,而在今天看来,它即将成为一个过去的时代了。
## I. 1991-1999: HTML时代
HTML时代的核心是文档,HTML的最初构想是用来提供大型、虚拟化的文档系统。当时的web页面是静态的,文件的代码需要手工编写,相应的web客户端的文档解析也非常粗糙。总之,在这个时代,服务器与客户端都是静态的。
## II. 2000-2009: LAMP时代
LAMP时代的核心是数据库。与文档时代相比,主导的web组合为LAMP或类似LAMP的架构,无论是CGI,PHP,Ruby on Rails,或者Django,其主要模式是用数据填充HTML模板,服务器端提供动态的内容,但客户端仍然是静态的。
## III. 2010-??: Javascript时代
Javascript时代的核心是事件流。现代的web页面已经不再是普通的页面了,它们通过改变内容提供基于事件驱动的应用。web的核心-DOM(文档对象模型)-仍然存在,但是它不再充当HTML标记,DOM是内存中Javascript生成的经过高效编码后的数据结构。
LAMP架构已死,因为一些web应用需要对加载标记(markup)到客户端的一个小小的事件而使服务器满负荷运行,这仅需要借助Javascript来更新DOM的一个片段而已。Ajax可以实现这点,但是当你的LAMP架构的服务器端HTML模板中仅包含10%的HTML和90%的Javascript时,很明显你的设计存在着问题。
要认识到这种改变,就意味着需要丢掉以前的思维和观念,请不要单纯的把服务器作为文件传送者(HTML时代),或者将服务器看作一个模板渲染器(LAMP时代),我们可以把它看作是提供功能或者数据装配的角色。服务器的主要作用就变为传送应用到客户端(Javascript),同时携带数据(JSON),并让客户端组织成一个DOM。
服务器的第二个角色就是监听事件流(一次修改,一条信息,或者股票的实时变化),并能高效的返回响应给客户端。
对于上面所提的两种角色来说,node.js提供了一种理想化的服务器端架构。由于我们可以在服务器端使用柯里化的Javascript函数,我们应该用Javascript来写,并且还可以容易的将一些服务器端的功能转移到客户端(比如,我们就不再需要实现两个自定义字符串格式的类库了)。
对于事件流的处理,node.js是比较理想的,其异步、非阻塞的架构就意味着速度很快。node.js在使用HTTP 1.1,保持连接打开的情况下,仅需一台普通服务器就能实现并发处理数千个连接。
最后,值得一提的是,事件是简单的数据包,以及JSON是web数据的通用语言,JSON可以保存股票分时线的即时数据,或者到达的消息,对于node.js来说,是原生就支持的。
Javascript时代带给我们的更像是一个网络,而不仅仅是一个全球性的数字图书馆,它更像一个全球性的数字神经系统,这种影响才刚刚开始。你是否也这样认为?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-345269-1-1.html 上篇帖子: nodejs使用https的步骤发布服务 下篇帖子: 【转】Discussion
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表