网站负责人 法人,北京seo专业团队,太平洋手机官网报价大全,架构图在什么网站可以做Ajax在不刷新页面的情况下#xff0c;进行页面局部更新。
Ajax使用流程#xff1a;
创建XmlHttpReqeust对象发送Ajax请求处理服务器响应
1. 创建XmlHttpReqeust对象
XmlHttpReqeust对象是Ajax的核心#xff0c;使用该对象发起请求#xff0c;接收响应
不同的浏览器创建…Ajax在不刷新页面的情况下进行页面局部更新。
Ajax使用流程
创建XmlHttpReqeust对象发送Ajax请求处理服务器响应
1. 创建XmlHttpReqeust对象
XmlHttpReqeust对象是Ajax的核心使用该对象发起请求接收响应
不同的浏览器创建方式不相同
2. 发送Ajax请求
xmlhttp.open()创建请求xmlhttp.send()发送到服务器 3. 处理服务器响应
xmlhttp.onreadystatechange()事件用来监听Ajax执行过程xmlhttp.readyState属性说明XMLHttpRequest当前状态 xmlhttp.status属性代表服务器响应状态码 JSON语法规则
数据由key:value键值对描述{}代表一个完整对象拥有多个键值对[]保存数组多个对象之间使用,分隔
JSON是一种轻量级文本数据交换格式javascript天然支持JSON。
AjaxJSON开发模式 JSON序列化组件Jackson dependency!--添加jackson依赖--groupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.12.3/version/dependency将对象序列化为JSON字符串
发起Ajax请求并处理响应
Ajax组件库-axios http://axios-js.com/zh-cn/docs/ axios简化了Ajax的操作 axios发送GET请求
axios发送POST请求
Ajax默认是异步的方式执行。
Ajax同步和异步的区别
同步是在服务器未返回JSON前JS程序一直处于阻塞状态异步是在服务器未返回JSON前JS程序不阻塞Ajax通过回调获取结果
Ajax同步方式请求
因为是同步方式监听事件不会被执行当代码顺序执行到这一行时说明请求已经返回
Ajax实现二级联动菜单
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/titlescript src/js/axios.js/script
/head
bodyselect idlv1 stylewidth:200px;height:30pxoption value-1 selected请选择/option/selectselect idlv2 stylewidth:200px;height:30px/selectscriptvar lv1document.getElementById(lv1);axios.get(/channel,{params:{level:1}}).then(function(response){var jsonresponse.data;for(var i0;ijson.length;i){var channeljson[i];lv1.options.add(new Option(channel.name,channel.code))}}).catch(function(error){});var lv2document.getElementById(lv2);lv1.onchangefunction(){axios.get(/channel,{params:{level:2,parent:lv1.value}}).then(function(response){var jsonresponse.data;lv2.length0;// 清除二级菜单原来的数据for(var j0;jjson.length;j) {lv2.options.add(new Option(json[j].name,json[j].code))}}).catch(function(error){});}
/script
/body
/htmlpackage ajax.servlet;import ajax.entity.Channel;
import com.fasterxml.jackson.databind.ObjectMapper;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;WebServlet(/channel)
public class ChannelServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String level req.getParameter(level);String parent req.getParameter(parent);ListChannel chlistnew ArrayList();if(level.equals(1)){chlist.add(new Channel(ai,人工智能));chlist.add(new Channel(web,前端开发));}else if(level.equals(2)){if(parent.equals(ai)){chlist.add(new Channel(dl,深度学习));chlist.add(new Channel(cv,计算机视觉));chlist.add(new Channel(nlp,自然语言处理));}else if(parent.equals(web)){chlist.add(new Channel(html,超文本标记语言));chlist.add(new Channel(css,级联样式表));chlist.add(new Channel(js,javascript脚本));}}ObjectMapper objectMappernew ObjectMapper();String jsonobjectMapper.writeValueAsString(chlist);resp.setContentType(application/json;charsetutf-8);resp.getWriter().println(json);}
}