Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

史前的Ssjs——从js的asp到node js

1,614 views

Published on

CNodeJS分享:珠三角技术沙龙6月NodeJS专场

Published in: Technology
  • Be the first to comment

  • Be the first to like this

史前的Ssjs——从js的asp到node js

  1. 1. 自我介绍 <ul><li>我叫张鑫,微博是 weibo.com/sp42 </li></ul><ul><li>Ext 中文网: ajaxjs.com </li></ul><ul><li>熟悉 Web 前端开发、 JavaScript </li></ul>
  2. 2. 标 题 史前的 SSJS—— 从 JS 的 ASP 到 NodeJS
  3. 3. 开篇 <ul><li>SSJS ? SSJS 即 Server Side JavaScript ,非客户端的 JS 。 </li></ul><ul><li>史前的?的确, NodeJS 是新的。从历史沿革上把握 SSJS 进化,拿出参照物,以更好理解今天的 NodeJS 之所以然 </li></ul><ul><li>选定我熟悉也是我入门的技术 ASP ( Classic ASP ) </li></ul>
  4. 4. 乘坐时间穿梭机…… <ul><li>回到 ASP 的年代…… </li></ul><ul><li>为微软的第一代 Web 开发技术,诞生于 1996 年 </li></ul><ul><li>那时是什么环境? 互联网大潮,引致彼时的 Web 开发就像今天的网游开发 </li></ul><ul><li>CGI/ASP/PHP/JSP (动态网页开发) </li></ul>
  5. 5. 回顾 ASP 特点 <ul><li>专门针对 Web 开发,相对于 CGI 来说 ASP 进步巨大 </li></ul><ul><li>主要依赖 IIS ,支持多种脚本语言: VBS/JScript/…… </li></ul><ul><li>易学易用 </li></ul><ul><li>不开源,不过有其控件市场 </li></ul>
  6. 6. NodeJS v.s Jscript ASP <ul><li>Nodejs 和 JScript ASP 可谓别具一格的 Web 服务端开发,都以 JavaScript 为开发语言,那么,同是 SSJS ,究竟差别在哪里呢? 提出几个问题如下: </li></ul>
  7. 7. 厘清若干问题 <ul><li>与 JS ASP 相比, Node 提出了什么新概念? </li></ul><ul><li>学习曲线上, Node 和 JS ASP 比较怎么样? </li></ul><ul><li>Node 的实质意义? </li></ul><ul><li>第三方的控件 / 组件,是否满足需求? </li></ul>
  8. 8. 比较 Request 请求 <ul><li>为脚本提供了当客户端请求一个页面或者传递一个窗体时,客户端提供的全部信息。这包括能指明浏览器和用户的 HTTP 变量。 </li></ul><ul><li>Node : </li></ul><ul><li>node> require('url').parse('/status?name=ryan', true) </li></ul><ul><li>{ href: '/status?name=ryan', </li></ul><ul><li>search: '?name=ryan', </li></ul><ul><li>query: { name: 'ryan' }, </li></ul><ul><li>pathname: '/status' } </li></ul><ul><li>Jscript : Request.Form('field') 、 Request.QuertString('id') 、 Request.Cookies 、 Request.ServerVariables </li></ul>
  9. 9. 比较 Response 响应 <ul><li>用来访问服务器端所创建的并发回到客户端的响应信息。为脚本提供 HTTP 变量,指明服务器和服务器的功能和关于发回浏览器的内容的信息。 </li></ul><ul><li>Node : </li></ul><ul><li>var http = require('http'); </li></ul><ul><li>http.createServer(function (req, res) { </li></ul><ul><li>res.writeHead(200, {'Content-Type': 'text/plain'}); </li></ul><ul><li>res.end('Hello Worldn'); </li></ul><ul><li>}).listen(1337, &quot;127.0.0.1&quot;); </li></ul><ul><li>Jscript : Response.write(Request.Form('field')); </li></ul>
  10. 10. 比较 Session 会话 <ul><li>Node API 不提供,由第三方代码支持: </li></ul><ul><li>* Connect: http://senchalabs.github.com/connect/ </li></ul><ul><li>* Express.js: http://expressjs.com/ </li></ul><ul><li>* Geddy: http://geddyjs.org/ </li></ul><ul><li>Jscript : Session.contents('key') = 'foo'; Session.contents('bar') = { // 可用对象赋值 a : 'a' }; </li></ul>
  11. 11. 整体差异 <ul><li>文化上差异:开源与非开源 </li></ul><ul><li>生命周期不同, JScript 请求响应后即结束线程; Node 是守护进程。 </li></ul><ul><li>API 定位不同, JScript 定位在通过脚本语言快速 Web 开发,表现在 Jscript 就自带一个缺省模板机制, <%…………%> ;而 Node 则可参与更多的网络底层服务,如 Socket 、反向服务器、 DNS 等等 </li></ul><ul><li>可通过 V8 编译 JS ; JScript 调用 COM 封装好的组件 </li></ul><ul><li>Node 虽归为 SSJS 一类,但与传统 Web 开发思维明显不同,由此差别仍然很大。 </li></ul>
  12. 12. 小 结 <ul><li>比较了 Request/Response </li></ul><ul><li>比较了 Session </li></ul><ul><li>比较了数据库链接 </li></ul><ul><li>比较了整体差异 </li></ul>
  13. 13. EOF <ul><li>谢谢大家!欢迎提问和交流! </li></ul><ul><li>我叫张鑫,微博是 weibo.com/sp42 </li></ul><ul><li>请留意另一专题《管窥 Nodejs 的事件——基于观察者模式的事件队列》 </li></ul>

×