2020-11-13原生ajax的网络请求

一,ajax请求

1 创建网络请求的对象
var xhr = new XMLHttpRequest()||new ACtiveXobject(“XMLHTTP.Micsoft”)
//前面一个是浏览器创建的对象,后面一个是做的兼容IE的。
2 配置连接的服务器
xhr.open(“GET”,“http:192.168.2.66:8080/info”,true) //默认的是异步的 可以直接同步

3发起网络请求
xhr.send() //前端给后端发送数据 ,get 请求这里发了后端也接受不了 ,post相反

   //这个监听是对1234 的监听 何时才可以去取数据在xhr.responsetext中
      xhr.onreadystatechange = function(){
        if(xhr.readState==4&& xhr.status==200){
        //xhr.readState状态有1234反应的是网络请求的过程 4 是数据已经到达前端
                       // xhr.status 是状态码  404 是文件没有   200是请求成功了
                       // 4开头是前端的问题   5开头是服务器的问题
                var p = document.creatElement(P)
                    p.innerHTML=JOSN.parse(xhr.responsetext).age
                                //JOSN字符串转出JOSN对象
                      doucumnet.body.appendchild(p)
    }
}

二,网页的呈现过程

  1 用户访问一个·网址
     做网络请求 后端返回一个文档就是是一个html字符串 浏览器解析这个文档
     
  2  解析的过程 中 凡是遇到了 ajax(xhr的send) src  href url 等等  
     会再次发起网络请求
     
  3 对应的标签和或者语法 网络请求成果 就会把对应数据拿来使用

三,require函数

 require是一个node环境中的一个全局函数,浏览器环境中没有这个函数
 1.1如果是一个模块路径(模块名)
 它就会去当前文件夹中的node_modules文件夹中去找模块
  如果没有就去nodejs的全局安装包中去找:global中
  如果全局中没有会去node的原包中去找
  如果没找到  就会报错:模块不存在
  会去对应的模块文件夹中找到一个项目配置文件,中的main字段中的路径对应的文件,导入

1.2
如果是一个相对路路径/绝对路径
会直接找到文件并导入

2.模块分为3种
系统自带的核心模块==>不用下载,安装node时已经有了
第三方模块==>需要下载到项目中才能导入并使用
自定义模块==>自己写导出然后,导入进来使用

//install可以简写为i
//npm install 模块名字 //安装到本地的(node的安装包中)
//npm i 模块名字 -g // 安装到全局文件夹
//npm i 模块名字 -S // 安装到项目中来(当前文件夹中的,node_modules文件夹中)

自定义模块
var myjquery=require("./src/myjquery.js")
console.log(myjquery)
myjquery.say()
fs.readFile

//js代码
module.exports={
	name:"karen",
	say(){
		console.log("我被调用了")
	}
}

四,静态托管

var http=require("http")
var fs=require("fs")
var app=http.createServer((req,res)=>{
	// if(req.url=="/index.html"){
	// 	fs.readFile(__dirname+"/src/index.html",(err,data)=>{res.end(data)})
	// }
	// else if(req.url=="/css/index.css"){
	// 	fs.readFile(__dirname+"/src/css/index.css",(err,data)=>{res.end(data)})	
	// }
	// else if(req.url=="/img/1.jpg"){
	// 	fs.readFile(__dirname+"/src/img/1.jpg",(err,data)=>{res.end(data)})	
	// }
	// else if(req.url=="/2.html"){
	// 	fs.readFile(__dirname+"/src/2.html",(err,data)=>{res.end(data)})	
	// }
	//静态资源托管: src目录
	fs.readFile(__dirname+"/src"+req.url,(err,data)=>{
		if(err){		
			if(req.url=="/666"){
				res.end('{"name":"karen"}')
			}
			else if(req.url=="/userinfo"){
				res.end('{"name":"jack"}')
			}
			else{
				res.end("404,not found")
			}
		}
		else{
			res.end(data)
		}
	})
	
})
app.listen(8080)

//接口是后端提供的
//接口分为数据接口和静态资源接口
//接口就是后端提供的网址

实现了前端想要什么内容 后端就发什么内容 所有资源放在一个文件夹里面 路径要注意

五,回调函数实现文件的遍历

// var fs = require("fs")
// fs.readdir(__dirname + "/a", (err, files) => {
// 	//console.log(files)
// 	for (let i = 0; i < files.length; i++) {

// 		//console.log(files[i])
// 		fs.stat(__dirname + "/a/" + files[i], (err, info) => {
// 			if (info.isFile()) {
// 				console.log(files[i])			
// 			}else{
				
				
				
// 			}
// 		})
// 	}
// })


var fs = require("fs")
function  fn (path) {
	fs.readdir(path, (err, files) => {
		files.forEach((el)=>{
			fs.stat(path+"/"+el,(err,info)=>{
				if(info.isFile()){console.log(el)}
				else{fn(path+"/"+el)}
			})
		})
	})
}

fn(__dirname+"/a")

回调要又结束判断的条件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值