编写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('服务器启动成功了,可以访问了。。。')
})