zoukankan      html  css  js  c++  java
  • Node.js初学

    Node.js 初学~

    其技术上最大的卖点是非阻塞的I/O和基于事件的异步处理机制。

    后端没有什么深入研究,一直对其不是很了解。

    透过一个例子看 非阻塞 与 通常的 阻塞

    var text = readFileSync("sample.html");//执行完才会进行下一步
    console.log(text);

    //第一个例子  必须等到 readFileSync 读完文件, 才会有值的接受 以及后来的打印。

    阻塞I/O会导致线程等待,从而造成线程资源浪费,因为当应用服务器处理请求时,需要等待I/O执行结束才能继续处理。

    readFile("sample.html", function(err, text) {
        console.log(text); //
    });
    console.log("xxx");

    //这个例子 可以看出   回调在这里的应用,在这里 读文件与 console.log('xxx'); 同步进行,各做各的事,等读完文件 在执行里面的console.log(text)  。

    这就是非阻塞的特点。 

    Node有一个无需I/O等待或执行环境切换的单独执行环境。Node的I/O调用会转换为请求处理函数,当某些数据可用时事件轮询会调度事件让这些函数工作。事件轮询和事件处理程序模型差不多,就像浏览器中的JavaScript一样。程序的执行最好能快速返回到事件循环中,以便马上调度下一个可执行的任务。

    编写基于Node.js的模块

    Node.js遵循了CommonJS 的一些规范 比如modules。http://www.commonjs.org/

    所有定义都写在 module.exports 下

    由于浏览器端 没有改 对象,所以我们写之前 可以先判断下。

    //这是underscore.js写的基于 node 、或者 window下的定义方法
    if (typeof exports !== 'undefined') {
        if (typeof module !== 'undefined' && module.exports) {
          exports = module.exports = _;
        }
        exports._ = _;
      } else {
        root._ = _;  //root为window
      }
    Now or nerver .
  • 相关阅读:
    12个非常不错的javascript类库
    CSS中单位em和rem的区别
    CSS中box-sizing属性的作用
    网页设计中的默认字体样式详解
    jQuery遍历Table表格的行和列
    css常用解决方案
    JS判断字符串小括号是否成对合法
    Less编码规范
    React九宫格抽奖
    n个有序数组,取出k个最大值
  • 原文地址:https://www.cnblogs.com/iyueyao/p/3320469.html
Copyright © 2011-2022 走看看