Ajax实现局部刷新的方法实例


Posted in Javascript onMarch 31, 2021

前言

最近复习了一下jQuery的一些内容,特此整理一下一些能用的得到的知识点,以前才学jQuery的时候压根就没有注意到那么多的细节,另外最近一直都在整理前端的一些工作中学到的小经验,大概还会有十篇左右的内容,就会慢慢开始整理后端,框架,以及数据库的一些小知识点

一、 Ajax是什么?

概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML

1、异步和同步:客户端和服务器端相互通信的基础上

     -> 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。

     ->客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作

2、Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

     ->通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

     -> 传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

二、实现方式:

1.原生的JS实现方式(了解)

javascript代码如下(示例):

//javascript代码
 var xmlhttp;//1.创建核心对象
 if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp = new XMLHttpRequest();
 } else {// code for IE6, IE5
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 }
 //2. 建立连接
 /* 参数:
  1. 请求方式:GET、POST
   * get方式,请求参数在URL后边拼接。send方法为空参
   * post方式,请求参数在send方法中定义
  2. 请求的URL:
  3. 同步或异步请求:true(异步)或 false(同步)
  */
  //将URL改成你自己的地址
 xmlhttp.open("GET", "<%=request.getContextPath()%>/testDemo?name=zhangsan", true);
 //3、将请求发送到服务器。
 xmlhttp.send();
 //4.接受并处理来自服务器的响应结果
 //获取方式 :xmlhttp.responseText
 //当xmlhttp对象的就绪状态改变时,触发事件onreadystatechange。
 //接收服务器端的响应(readyState=4表示请求已完成且响应已就绪 status=200表示请求响应一切正常)
 xmlhttp.onreadystatechange = function () {
  //判断readyState就绪状态是否为4,判断status响应状态码是否为200
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  //获取服务器的响应结果
  var responseText = xmlhttp.responseText;
  alert(responseText);
  }
 }

java后端接收代码如下(示例):

//.取得参数,
 String name=request.getParameter("name");
 System.out.println(name);//打印输出取得的参数
 //将数据信息回写给ajax
 response.getWriter().write("hello");

2.JQeury实现方式

代码如下(示例):

1. $.ajax()

    -> 语法:$.ajax({键值对});

代码如下(示例):

//使用$.ajax()发送异步请求
		 $.ajax({
  url:"<%=request.getContextPath()%>/testDemo" , // 请求路径
  type: "POST", //请求方式
  data: {"name": "zhangsan"},//请求参数
  dataType: "JSON", //设置接受到的响应数据的格式,还有很多格式,如:text
  //async:false,//默认是true(异步),false(同步)
  success: function (data) {//响应成功后的回调函数
   alert(data);
   }
  },
  error: function () {
   alert("出错啦...");
  },
  });
  
	//java代码和上述java代码一样即可

2. $.get():发送get请求(ajax的简化)

-> 语法:$.get(url, [data], [callback], [type])

    * url:请求路径

    * data:请求参数

    * callback:回调函数

    * type:响应结果的类型

代码如下(示例):

$.get("<%=request.getContextPath()%>/testDemo",{name:"zhangsan"},function (data) {
  alert(data);
  },"text");

3. $.post():发送post请求(ajax的简化)

->语法:$.post(url, [data], [callback], [type])

    * url:请求路径

    * data:请求参数

    * callback:回调函数

    * type:响应结果的类型

代码如下(示例):

$.post("<%=request.getContextPath()%>/testDemo",{name:"zhangsan"},function(data) {
  alert(data);
  },"text");

小栗子

jsp页面:

<%--
 Created by IntelliJ IDEA.
 User: ASUS
 Date: 2021/3/2
 Time: 22:20
 To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>Title</title>
 <title>ajax局部刷新</title>
 <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.11.0.js"></script>
 <style type="text/css">
 input {
  width: 260px;
  height: 25px;
 }

 input:focus {//按钮点击后改变颜色
  background: #10a0e9;
 }


 </style>
</head>
<body style="text-align:center;">
<input type="button" value="btn1" onclick="btnfun1()">
<input type="button" value="btn2" onclick="btnfun2()">
<input type="button" value="btn3" onclick="btnfun3()">
<br>
<span>你好啊!!我叫:</span>
<div id="div1">
</div>
</body>

<script type="text/javascript">
 function btnfun1() {
 $.ajax({
  url: "<%=request.getContextPath()%>/ajaxServlet",	//上传URL
  type: "POST", //请求方式
  data: {"flag": "one"}, //需要上传的数据
  dataType: "text", //设置接受到的响应数据的格式
  success: function (data) {	//请求成功
  console.log(data);
  $("#div1").html(data);
  },
  error: function () {
  alert("出错啦...");
  },//表示如果请求响应出现错误,会执行的回调函数
 });
 }

 function btnfun2() {
 $.ajax({
  url: "<%=request.getContextPath()%>/ajaxServlet",	//上传URL
  type: "POST", //请求方式
  data: {"flag": "two"}, //需要上传的数据
  dataType: "text", //设置接受到的响应数据的格式
  success: function (data) {	//请求成功
  console.log(data);
  $("#div1").html(data);
  },
  error: function () {
  alert("出错啦...");
  },//表示如果请求响应出现错误,会执行的回调函数
 });
 }

 function btnfun3() {
 $.ajax({
  url: "<%=request.getContextPath()%>/ajaxServlet",	//上传URL
  type: "POST", //请求方式
  data: {"flag": "three"}, //需要上传的数据
  dataType: "text", //设置接受到的响应数据的格式
  success: function (data) {	//请求成功
  console.log(data);
  $("#div1").html(data);
  },
  error: function () {
  alert("出错啦...");
  },//表示如果请求响应出现错误,会执行的回调函数
 });
 }
</script>

</html>

java代码

package test3_2.ajax;

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;

@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 request.setCharacterEncoding("UTF-8");
 response.setContentType("text/html; charset=UTF-8");
 response.setCharacterEncoding("UTF-8");
 //1、获取ajax传递过来的参数信息
 String flag = request.getParameter("flag");
 System.out.println(flag);
 //2、需要返回的数据信息
 String data = " ";
 if("one".equals(flag)){//流行歌曲
  data = "张三";
 }else if("two".equals(flag)){//经典歌曲
  data = "李四";
 }else if("three".equals(flag)){//摇滚歌曲
  data = "老王";
 }
 //3、将数据信息回写给ajax
 response.getWriter().write(data);

 }

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doPost(request,response);
 }
}

截图:

Ajax实现局部刷新的方法实例

Ajax实现局部刷新的方法实例

Ajax实现局部刷新的方法实例

总结

到此这篇关于Ajax实现局部刷新的文章就介绍到这了,更多相关Ajax局部刷新内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
W3C Group的JavaScript1.8 新特性介绍
May 19 Javascript
Javascript 模式实例 观察者模式
Oct 24 Javascript
解析JavaScript中的标签语句
Jun 19 Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 Javascript
JavaScript lodash常见用法系列小结
Aug 24 Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 Javascript
关于预加载InstantClick的问题解决方法
Sep 12 Javascript
vue树形结构获取键值的方法示例
Jun 21 Javascript
vue.js实现插入数值与表达式的方法分析
Jul 06 Javascript
vue实现多条件和模糊搜索功能
May 28 Javascript
微信小程序image图片加载完成监听
Aug 31 Javascript
Layui弹出层 加载 做编辑页面的方法
Sep 16 Javascript
前端学习——JavaScript原生实现购物车案例
JavaScript中关于预编译、作用域链和闭包的理解
JavaScript 去重和重复次数统计
Mar 31 #Javascript
vue中三级导航的菜单权限控制
Mar 31 #Vue.js
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
vue3中的组件间通信
vue前端工程的搭建
You might like
php记录日志的实现代码
2011/08/08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
python中xrange用法分析
2015/04/15 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
python中shell执行知识点
2020/05/06 Python
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
旅游管理毕业生自荐书
2014/02/02 职场文书
物业管理毕业生的自我评价
2014/02/17 职场文书
公证委托书大全
2014/04/04 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
生产实习心得体会范文
2016/01/22 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
springboot读取resources下文件的方式详解
2022/06/21 Java/Android