node.js入门知识点总结

1. Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。

Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHPPythonPerlRuby 等服务端语言平起平坐的脚本语言发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。

2. JavaScript

Javascript是一种解释型的脚本语言,广泛用于Web开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。JavaScript具有脚本语言、基于对象、简单、动态性、跨平台性的特点。不同于PHP、ASP、Perl、Ruby等的服务器端脚本语言,JavaScript主要作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持,所以JavaScript能减少对服务器的负担,但同时也带来安全性的问题。随着服务器的强壮,虽然程序员们更喜欢运行与服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时有些特殊功能(如Ajax)必须依赖JavaScript在客户端进行支持。

JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){},其中,catch()中会传入错误信息。

3. PHP

PHP——“超文本预处理器”,是一种通用开源脚本语言。由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。PHP运行环境的使用也是免费的。PHP非常容易学习和使用,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。PHP可以和MySQL、ODBC、Oracle等很多主流的数据库建立连接,通过编译的不同函数。PHP语言可以将面向过程和面向对象混用,这是很多编程语言做不到的。缺点是PHP中所有变量都是页面级的,无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空,对递归的支持不太良好。

4. Perl和Ruby

两个都是功能强大的服务器端脚本语言,Perl是美国人开发的,Ruby是后来由日本人开发的,使用非常广泛

5. 事件驱动

事件驱动是指在持续事务管理过程中,进行决策的一种策略,即跟随当前时间点上出现的事件,调动可用资源,执行相关任务,使不断出现的问题得以解决,防止事务堆积。在计算机编程、公共关系、经济活动等领域均有应用。简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数);事件不仅限于用户的操作。

从事件角度说,事件驱动程序的基本结构是由一个事件收集器、一个事件发送器和一个事件处理器组成。

事件收集器专门负责收集所有事件,包括来自用户的(如鼠标、键盘事件等)、来自硬件的(时钟事件等)和来自软件的(如操作系统、应用程序本身等)。

事件发送器负责将收集器收集到的事件分发到目标对象中。

事件处理器做相应的事件响应工作。对于框架的使用者来说,可见的是事件处理器。

Windows本身是基于“事件驱动”模型的。可以详细了解下。

6. 非阻塞式I/O

非阻塞I/O又叫异步I/O,对应的是阻塞I/O。

阻塞I/O和多线程一般配合在一起,因为阻塞I/O也就是一个线程同时只能处理一个连接,那么只能增加线程数。这样做的优点是每个连接都不会影响到其他连接,但是对服务器的负担很大。

node的特性是单线程、非阻塞I/O,即一个线程同时处理多个连接,线程一直监听,当某个连接调用回调函数的时候,线程去处理这个连接,如果同时多个连接需要处理,就用事件驱动规则去处理。单线程、非阻塞I/O的优点是性能强,适合I/O操作多的任务,缺点是一个连接出错会影响其他的所有连接,安全性比较差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值