编写Ajax,基础的Node

编写Ajax,基础的Node

一、编写Ajax

总体上分为四步

1.创建对象

代码:

 var oAjax = new XMLHttpRequest();//IE6浏览器不支持
 //为了支持IE6则需要使用ActiveXObject("Microsoft.XMLHTTp")
 var oAjax = new ActiveXObject("Microsoft.XMLHTTp");
 //而其他浏览器不支持
 //最终代码为
 if (window.XMLHttpRequest) {
        var oAjax = new XMLHttpRequest();
    } else {
        var oAjax = new ActiveXObject("Microsoft.XMLHTTp");
    }
 

2.连接服务器

. open(方法、文件名、异步传输)
方法为:GET方法 或者 POST 方法
代码:

oAjax.open('GET', url, true);//连接服务器

3.发送请求

. send()方法
代码:

oAjax.send();//发送请求

4.接受返回

请求状态监控

. readyState属性:请求状态

  • 0(未初始化)还没有调用open()方法
  • 1(载入)已调用send()方法,正在发送请求
  • 2 (载入完成)send()方法完成,已收到全部响应内容
  • 3(解析)正在解析响应内容
  • 4(完成)响应内容解析完成,可以在客户端调用了

. status 属性:请求结果
.responseText:文本
代码:

oAjax.onreadystatechange = function () {
        //读取完成
        if (oAjax.readyState == 4) {
            //完成
            if (oAjax.status == 200) {
                fnSucc(oAjax.responseText);
            }
            //失败
            else {
                if (fnFaild) {
                    fnFaild(oAjax.status);
                }
            }

        }

    }

5.代码整合

最终的代码:

function ajax(url, fnSucc, fnFaild) {
    //创建对象
    if (window.XMLHttpRequest) {
        var oAjax = new XMLHttpRequest();
    } else {
        var oAjax = new ActiveXObject("Microsoft.XMLHTTp");
    }
    oAjax.open('GET', url, true);//连接服务器
    oAjax.send();//发送请求
    oAjax.onreadystatechange = function () {
        //读取完成
        if (oAjax.readyState == 4) {
            //完成
            if (oAjax.status == 200) {
                fnSucc(oAjax.responseText);
            }
            //失败
            else {
                if (fnFaild) {
                    fnFaild(oAjax.status);
                }
            }

        }

    }
}

二、基本Node

1.Node.js是什么?

Node.js 是一个JavaScript 运行时环境,即Node.js 可以解析和执行JavaScript 代码
Node.js 中的JavaScript

  • 没有BOM、DOM

  • EcmaScript (基本语法)

    • if-else语法
    • switch
    • for循环
    • 基本数据类型
    • 引用数据leix
    • 数组
    • ……
  • 在Node这个JavaScript 执行环境中为 JavaScript 提供了一些服务器级别的操作API

    • 文件读写
    • 网络服务的构建
    • 网络通信
    • http 服务器
    • ……
  • 特性

    • 事件驱动
    • 非阻塞IO模型(异步)
    • 轻量和高效
  • npm:世界上最大的开源库生态系统

  • 核心模块

    • 文件操作的fs 核心模块
    • http 服务构建的http 模块
    • path 路径操作模块
    • os操作系统信息模块
    • ……

2.Node.js可以做什么?

  • web 服务器后台
  • 命令行工具
    • npm
    • ogit(C 语言)
    • hexo (node)
    • ……

3.Node.js可以学到什么?

  • B/s 编程模型
  • 模块化编程
  • Node常用API
  • 异步编程
  • Express 开发框架
  • Ecmascript 6
  • ……

4.Node.js 操作能力

浏览器中的JavaScript 无文件操作能力,但是Node中的JavaScript 具有文件操作能力。
在Node 中若要进行文件操作,就必须引入fs 这个核心模块(fs 为file-system简写,加载:var fs = require(‘fs’)。

  • 1读文件 fs. readFile
    + 参数 :①:文件路径 ②:可选参数(可以传utf8) ③:回调函数function( error,data ){}
    + 成功读取 :data :数据; error:null
    + 失败读取:data:undefined ;error:错误对象
  • 2写文件 writeFile

    • 参数:① 文件路径;② 文件内容;
    • ③:回调函数 function(error){}
      • 成功:文件写入成功 error为null
      • 失败:文件写入失败 error为错误对象

    代码:

var fs = require('fs'//读取文件
fs.readFile('./data/a','utf8',function (error ,data)
{
   if(err){
         console.log('读取失败')
         }else{
          console.log('data')
          }
 }
 // 写文件
 fs.writeFile('./data/a','handsome',function (error)
{
   if(err){
         console.log('写入失败')
         }else{
          console.log('写入成功')
          }
 }

5.创建服务器

Node 专门提供了一个核心模块:http 编写服务器

1.加载http核心模块
var http = require('http')
2.使用http.createServer() 方法创建一个web 服务器

返回一个Server 实例

var server = http.createServer()
3.提供服务,对数据的服务

① 发请求
② 接受请求
③ 处理请求
④发送响应
注册 request 请求事件
当客户端请求过来,就会自动触发服务器的request 请求事件,然后执行第二个参数:回调处理函数

server.on('request', function (req, res) {
    //console.log('收到请求了,请求路径是:'+ req.url)
    /* res.write('hello')
    res.write('node.js')
    res.end() */
    var url = req.url
    if (url === '/') {
        res.setHeader('Content-Type', 'text/plain ;charset=UTF-8')
        res.end('index page')
    } else if (url === '/login') {
        res.end('login page')

    } else {
        res.end('404 Not Found.')
    }

})
4.绑定端口号,启动服务器
server.listen(3000, function () {
    console.log('服务器启动成功了,可以访问了。。。')
})
5.最后代码
var http = require('http')

//1.创建server
var server = http.createServer()
//2.监听 request 请求事件 设置请求处理函数
server.on('request', function (req, res) {
    //console.log('收到请求了,请求路径是:'+ req.url)
    /* res.write('hello')
    res.write('node.js')
    res.end() */
    var url = req.url
    if (url === '/') {
        res.setHeader('Content-Type', 'text/plain ;charset=UTF-8')
        res.end('index page')
    } else if (url === '/login') {
        res.end('login page')

    } else {
        res.end('404 Not Found.')
    }

})
//3.绑定端口号,启动服务
server.listen(3000, function () {
    console.log('服务器启动成功了,可以访问了。。。')
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值