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 相关文章推荐
一直复略了的一个问题,关于表单重复提交
Feb 15 Javascript
javascript 面向对象编程 聊聊对象的事
Sep 17 Javascript
父页面显示遮罩层弹出半透明状态的dialog
Mar 04 Javascript
javascript折半查找详解
Jan 26 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
Mar 13 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
Jul 01 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
Sep 24 Javascript
ES6入门教程之let、const的使用方法
Apr 13 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
May 14 jQuery
JS中比Switch...Case更优雅的多条件判断写法
Sep 05 Javascript
JS实现网站楼层导航效果代码实例
Jun 16 Javascript
前端学习——JavaScript原生实现购物车案例
JavaScript中关于预编译、作用域链和闭包的理解
JavaScript 去重和重复次数统计
Mar 31 #Javascript
vue中三级导航的菜单权限控制
Mar 31 #Vue.js
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
vue3中的组件间通信
vue前端工程的搭建
You might like
一个分页的论坛
2006/10/09 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
在Express中提供静态文件的实现方法
2019/10/17 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
如何在Python中实现goto语句的方法
2019/05/18 Python
python之信息加密题目详解
2019/06/26 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
python操作redis数据库的三种方法
2020/09/10 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
美食节策划方案
2014/05/26 职场文书
计划生育宣传标语
2014/06/21 职场文书
六查六看剖析材料
2014/10/06 职场文书
学习十八大宣传标语
2014/10/09 职场文书
大国崛起英国观后感
2015/06/02 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android