如果你一直在关注互联网的相关技术,你应该会有这样一种感觉,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时代带给我们的更像是一个网络,而不仅仅是一个全球性的数字图书馆,它更像一个全球性的数字神经系统,这种影响才刚刚开始。你是否也这样认为?
分享到:
相关推荐
如何用nodejs给C#写一个数据表的实体类生成工具 虽然微软提供了T4模板,但是我感觉非常难用。哪儿比得上直接用脚本来写模板来的爽。 因为要给一个老项目做周边的工具,需要连接到数据库。 我习惯性用Entity...
为了为即将到来的激动人心的新时代铺平道路,我们以更加模块化的方式更改了包的名称:直到发布1.64.0 ,我们的 npm 包被称为instana-nodejs-sensor 。 从版本1.65.0开始,名称已更改为@instana/collector 。 为防止...
P2PChatjs 一个简单的Java P2P聊天(浏览器和NodeJS)用法克隆并导航到index.html或在款式带有两个style.css和style02.css依存关系梦幻时代网络种子WebRTC p2p图屏幕截图
Nodejs 是一个基于 JavaScript 的服务器端运行环境,可以用来开发服务器端应用程序。PythonJS 是一个 Python 到 JavaScript 的翻译器,可以在浏览器上运行 Python 代码。使用 Nodejs 和 PythonJS,可以实现前端和...
基于NodeJS的媒体中心 网站: : 什么是MediacenterJS? MediacenterJS是一个完全从浏览器舒适地运行的媒体中心(例如XBMC)。 后端基于带有ExpressJS和JADE模板的Node.JS。 MVC结构使开发人员可以轻松地向MCJS...
项目文档见文件 第一章 客户 1.1客户查询详细分解 查询条件来源于cst_customer_0,1,2,3,4,5,6,7,8,9,10 模拟数据sql列子 (客户cstGUID = 321097)为列子 insert into cst_...'','深圳市蛇口太子路1号新时代广场
如何构建#BADA55 NodeJS 开发环境 德里克·贝利的演讲。 抽象的东西 一切旧的都是新的! 命令行、批处理、vim……我们正在回顾我们自己的历史,回到开发环境只... 您将看到文本编辑器如何与 NodeJS、Nodemon、Grunt 和
目的:通过学习HTML5以及CSS3常用基础,熟练使用页面布局,并且能够使用JavaScript语法达到与页面交互。通过AJAX实现NodeJS后台服务器交互。 第二阶段:综合项目实战(5工作日) 目的:搭建共享单车程序结构,...
node-dhcp是在node.js之上的符合RFC的DHCP客户端和服务器实现。动机DHCP服务器可用于配置整个本地网络。 可以用DHCP服务器来组织的典型参数是IP地址,网关/路由器,DNS服务器等等。... 在家庭自动化和物联网时代
节点教训Node Lessons是一系列旨在学习NodeJs和基础知识的练习。介绍即使对于有经验的Javascript程序员,学习NodeJ的基础也可能很困难。 指南,教程和文章的数量可能是压倒性的,尽管经过了几年疯狂的,几乎是...
4. Ajax 和服务器端技术开发:Ajax 技术使得前端开发者可以与服务器端进行交互,实现异步刷新和实时更新。同时,服务器端技术的发展也使得前端开发者需要了解服务器端的开发技术,如 NodeJS 等。 5. 高级设计模式和...
它有很棒的想法,但这是在不同JavaScript时代。 当时在2013年,一切都与Grunt,CommonJS和AMD模块有关。 现在,我们有了ES6,TypeScript,webpack,汇总和其他环境。 我日常使用的主流构建工具仍然缺少许多...
大前端时代的变化 温泉 MVVM前端工程化 跨端UniApp和Flutter 节点全栈 2 JS数据结构 3个JS算法 4个JS设计模式 5 JS性能优化 6 ES6-10 7个TypeScript 8 JS数据可视化 Javascript基础 内置函数 数组 目的 功能 布尔型...
NodeJS带来的全栈时代 第二章:MVVM模式和第一个Vue程序 1.MVVM模式的实现者 Model:模型层,在这里表示JavaScript对象 View:视图层,在这里表示DOM(HTML操作的元素) ViewModel:连接视图和数据的中间件,Vue.js...
十年前,这些数据集仅可用于研究管理,但在物联网时代,无论是“大”数据还是“快速”数据,此类数据集将成为我们医疗保健和公共卫生系统的生命之源。单元测试单元测试使用来自真实数据集的数据片段; 通常每个信号...
CTI共享 智能合约StoreData.sol中的Der Ordner合约将在Metadateien,WondiebenötitgteBuild-和...Nodejs herunterladen(链接: ://nodejs.org/en/) 松露installieren(Konsolen-Befehlt:npm install -g松露) Ga
解析多部分一个对原始数据进行操作的javascript / nodejs multipart / form-data解析器。作者克里斯蒂安·萨拉萨(Cristian Salazar)。 电子邮件: ,网站: ,我住在比尼亚德尔马(南美)。 我是专注于无服务器...
:school: 更智能-使用现代JavaScript构建 :face_blowing_a_kiss: 熟悉— Thwack使用类似于Axios的界面 :A_button_(blood_type)_selector: Typed —轻松包含TypeScript项目 :sparkles: 支持NodeJS 10和12 :...
在早期的世纪中,在人类的第三年龄,魔术师甘道夫-灰色人已开始在万圣节之夜收集南瓜,以帮助人类保护世界免受可能使用这些南瓜统治所有人的鬼魂时代的侵袭。 帮助我们的魔术师击败黑暗力量。 着急玩吗? 游戏玩法 ...
交流的新时代! 一个可以与您的朋友实时交流的平台,同时可以挑战他们的在线游戏。 网上没有朋友吗? 别担心,我们抓住了你! 您也可以与机器人对峙,甚至可以与Rollab助手聊天,而无需将任何聊天记录存储在机器人...