AJAX学习(基础学习笔记)

阅读: 评论:0

AJAX学习(基础学习笔记)

AJAX学习(基础学习笔记)

传统网站中存在的问题
1网速慢的情况下,页面加载时间长,用户只能等待

ajax 
概述:他是浏览器提供的一套方法,可以实现页面刷新更新数据,提高用户浏览器应用的体验

缺点:没有浏览历史,不能后退
存在跨域问题
SEO不友好

ajax 应用场景

1 页面上拉加载,更多的数据
2 列表数据无刷新分页
3 表单离开焦点数据验证
4 搜索框 提示文字下拉列表
 

ajax 的运行环境
ajax技术需要运行在网站环境中才能生效

ajax实现步骤

        //1 创建对象

        //2 初始化,设置请求方法和  url

        //3 发送 

        //4 事件绑定 处理服务器端返回的结果

 


express安装和基本使用

 

 

 1 使用

express  右键文件选择集成中端打开,打开写有express的js文件

 

 
2 ajax的请求类型方法  get  post  all 

//1引入express
const express = require('express');
//2创建应用对象
const app = express();
//3创建路由规则
//request 是对请求报文的封装
//response 是对响应报文的封装//get
('/server',(request,response)  =>{//设置响应头 这是允许跨域response.setHeader('Access-Control-Allow-Origin','*');//设置响应体response.send('Hello AJAX GET')
});//post
app.post('/server',(request,response)  =>{response.setHeader('Access-Control-Allow-Origin','*');response.send('Hello AJAX  POST')
});//all  all可以接受任意类型请求
app.all('/server',(request,response)  =>{response.setHeader('Access-Control-Allow-Origin','*');//响应头,设置什么类型的响应头都能接受到response.setHeader('Access-Control-Allow-Headers','*');response.send('Hello AJAX  POST')
});//json数据处理app.all('/json-server',(request,response)  =>{response.setHeader('Access-Control-Allow-Origin','*');//响应头,设置什么类型的响应头都能接受到response.setHeader('Access-Control-Allow-Headers','*');//响应一个数据const data = {name:'牛虎'}//数据进行转换 send(字符串)let str = JSON.stringify(data);//响应体response.send(str);
});//4监听端口启动服务
app.listen(8000,()=>{console.log("服务器已启动,8000端口监听中....");
})

2.1 get请求

<body><button class="btn">点击发送get请求</button><textarea name="" id="text" cols="30" rows="10"></textarea><script>//获取button按键const btn = document.querySelector('.btn');//获取文本框const te = document.querySelector('#text');//绑定点击事件btn.addEventListener('click',function(){//1 创建对象const xhr = new XMLHttpRequest();//2 初始化,设置请求方法和  urlxhr.open('GET','127.0.0.1:8000/server?a=100&b=200&c=300');//3 发送 xhr.send();//4 事件绑定 处理服务器端返回的结果/* on  when 当。。。。。的是时候readystate 是xhr 对象中的属性,表示状态 0 1 2  3(返回部分结果)  4(服务端返回所有的结果) change 改变*/adystatechange = function(){//判断(服务器端返回了 所有的结果)adyState ===4){//判断状态码 200 404 403 401 500//响应状态码 2**  2开头的都是代表成功的if(xhr.status >= 200 && xhr.status < 300){//处理结果    行    头  空行 体//1 响应行console.log(xhr.status);//状态码console.log(xhr.statusText);//状态字符串console.AllResponseHeaders());//所有响应头console.sponse);//响应体te.innerHTML = sponse;}}}});</script>
</body>

2.2post请求
 

<body><textarea name="" id="text" cols="30" rows="10"></textarea><script>const test = document.querySelector('#text');test.addEventListener('mouseover',function(){//1 创建对象const xhr = new XMLHttpRequest();//2 初始化,设置请求方法和  urlxhr.open('POST',"127.0.0.1:8000/server");//设置请求头,固定写法  content-type设置请求体内容类型    application/x-www-form-urlencoded参数查询字符串类型xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');//3 发送 //xhr.send()xhr.send('2133132156123niuhu');//设置请求体213313256123niuhu//4 事件绑定 处理服务器端返回的结果adystatechange = function(){adyState === 4){if(xhr.status >=200 && xhr.status < 300){test.innerHTML = sponse;}}}});</script></body>

2.3 all(可以接受所有类型)请求

<body><textarea name="" id="text" cols="30" rows="10"></textarea><script>const test = document.querySelector('#text');test.addEventListener('mouseover',function(){//1 创建对象const xhr = new XMLHttpRequest();//2 初始化,设置请求方法和  urlxhr.open('POST',"127.0.0.1:8000/server");//设置请求头,固定写法  content-type设置请求体内容类型    application/x-www-form-urlencoded参数查询字符串类型 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');//自定义响应头类型,值,同时要在server.js设置         //响应头,设置什么类型的响应头都能接受到 response.setHeader('Access-Control-Allow-Headers','*');xhr.setRequestHeader('name','niuhu')//3 发送 //xhr.send()xhr.send('2133132156123niuhu');//设置请求体213313256123niuhu//4 事件绑定 处理服务器端返回的结果adystatechange = function(){adyState === 4){if(xhr.status >=200 && xhr.status < 300){test.innerHTML = sponse;}}}});</script></body>


 

2.4 json数据转换  


<body><textarea name="" class="text" cols="30" rows="10"></textarea><button class="button">点击获取json</button><script>const text = document.querySelector(".text");const btn = document.querySelector(".button")text.addEventListener("keydown",function(){const xhr = new XMLHttpRequest();sponseType = 'json';xhr.open("GET","127.0.0.1:8000/json-server");xhr.send();adystatechange = function(){adyState === 4){if(xhr.status >=200 && xhr.status < 300){text.innerHTML = sponse.name;}}}})</script></body>

 针对ie缓存机制 ajax解决方案,加一个参数 “&#w()”
刷新会按照当前的时间来更新

 

本文发布于:2024-02-02 07:14:17,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170682925842207.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学习笔记   基础   AJAX
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23