-
nodejs 的核心思想 非阻塞 单线程 基于事件的异步驱动 //事件驱动:为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回调函数,这种函数执行的方式叫做事件驱动~这种注册回调就是基于事件驱动的回调,如果这些回调和异步的I/O操作有关,可以看作是基于回调的异步I/O,只不过这种回调在nodejs中是有事件来驱动的 //事件循环Eventloop,倘若有大量的异步操作,一些I/O的耗时操作,甚至是一些定时器控制的延时操作,它们完成的时候都要调用相应的回调函数,从而来完成一些密集的任务,而又不会阻塞整个程序执行的流程,此时需要一种机制来管理,这种机制叫做事件循环. 对于单线程的Nodejs来讲可以通过回调的方式进行异步编程达到非阻塞的的效果 javasript里的异步函数就是setTimeout()和setInterval() 一个事件是否可以绑定多个函数 同步: 打电话 -- 查询 -- (不挂电话)等待 -- 回结果 -- 挂电话 异步: 打电话 -- 查询 -- (挂电话)留号码 -- 回电话 -- 回结果 -- 挂电话查看全部
-
在git bash 中 利用 node -v 和 npm -v 可以查看版本信息。就可以更快知道是否 node.js是否安装成功查看全部
-
状态码 1XX = 2XX = 3XX = 4XX = 5XX =查看全部
-
推荐网站:<br> 1、nodejs.org 2、www.npmjs.com 3、github.com 4、stackoverflow.com查看全部
-
一、nodejs.org看看nodejs的版本升级,新特性的加入,重要bug的修复等 二、www.npmjs.com模块社区,看他人源代码,省力 三、github.com大量的项目和源码 四、stackoverflow.com技术解答社区以及查询相关资源,环境配置,异常均可找到答案查看全部
-
自定义头部信息,模拟签到查看全部
-
上节inndex.js运行失败原因是 class为关键字查看全部
-
Apache ab查看全部
-
dns解析过程查看全部
-
dns解析过程查看全部
-
chrome://net-internals/#dns 谷歌浏览器缓存查看,大概保存一分钟以内的缓存 以chrome浏览器为例: 1.Chrome搜索自身的DNS缓存;通过chrome://net-internals/#dns查看到你曾经查看的网络的dns缓存记录; 2.搜索操作系统自身的DNS缓存(浏览器没有找到缓存或者缓存已经失效); 3:读取本地的HOST文件(Mac:用vim编辑器打开etc下的HOST文件;Windows:c:/System32/driver/etc/HOST); 4:浏览器发起一个DNS的一个系统调用; (1).宽带运行商服务器查看本地缓存; (2).运营商服务器发起一个迭代DNS解析的请求;(根域——com域——imooc.com域); (结果:运营商服务器把结果返回操作系统内核同时缓存起来;操作系统内核把结果返回浏览器;最终浏览器拿到www.imooc.com对应的IP地址) 5.浏览器获得域名对应的IP地址后,发起HTTP“三次握手”; (Chrome向服务器的随机端口发送一个TCP连接请求——路由设备(多)——网卡——内核的TCP-IP协议栈——(防火墙)——web服务端) 6.TCP/IP连接建立后,浏览器就可以向服务器发红HTTP请求了。比如:用HTTP的GET方法请求一个根域里的一个域名,协议可以采用HTTP1.0的一个协议; 7.服务器端接收了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器; 8.浏览器拿到了网站的完整HTML页面代码,在解析和渲染这个页面的同时,里面的JS,CSS,图片静态资源,同样也是一个个HTTP请求,也都要经过上述的七个步骤; 9.浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给用户。查看全部
-
querystring.parse() querystring.stringify() querystring.escape() querystring.unescape() 转义querystring.escape('<哈哈>') 反转义querystring.unescape('%3c%e5..........') 序列化:querystring.stringify({name:'scott',course:['jade','node'],from:''},',',':') 结果是: 'name:scott,course:jade,course:node,from:' 第二个参数代表中间连接符,第三个参数代表键值中间的符号 如果没有后两个参数,那么默认为: 'name=scoot&&course=jade&&course=node&&from=' 反序列化: querystring.parse('name=scoot&&course=jade&&course=node&&from=') 解析成为一个数组 {name:'scott', course:['jade','node'], from:''}查看全部
-
url.parse('http://imooc.com/course/list') 返回对象,host,hostname,port path,pathname,search,query,hash等等。 slashes:是否有双斜杠;hash:锚点;search:查询字符串参数;query:发送给http服务器的数据;pathname:访问资源的路径名; URL.parse(参数1,参数2,参数3); 参数1为URL地址;参数2为true,则将query解析为对象;参数3为true,则可以正确解析不带协议的url。 URL:网址,URI的子集,URL是Uniform Resource Location的缩写,译为“统一资源定位符”。通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。 URI:Web上可用的每种资源:HTML文档、图像、视频片段、程序等。由一个通用资源标志符(Uniform Resource Identifier, 简称"URI")进行定位。查看全部
-
模块流程查看全部
-
识别稳定版本和非稳定版本查看全部
举报
0/150
提交
取消