day83 AJAX

server/2024/12/23 5:43:08/

一:什么是AJAX    AJAX语法

AJAX = Asynchronous JavaScript and  XML         

            异步js和XML

实现页面某一部份更新,无需服务器转发或重定向

1  $.ajax() 语法:


               
                 $.ajax( {
                      "url"            :  "url",                      // 要提交的URL路径
                      "type"         :  "get",                     // 发送请求的方式
                      "data"         :  data,                      // 要发送到服务器的数据  name=value&name=value ,{ name: "John", time: "2pm" }
                      "dataType" :  "text",                   // 指定响应的数据类型 :text,JSON
                      "success"  :  function(result) { // 请求成功后要执行的代码  参数:result是服务器响应后的数据
                          },
                       "error"       :  function() {           // 请求失败后要执行的代码
                          }
                 } );


 2 $.get() 语法:

  jQuery.get(url, [data], [callback], [type])
               

                参数:
                    url:待载入页面的URL地址

                    data:待发送 Key/value 参数。

                    callback:载入成功时回调函数。

                    type:返回内容格式,xml, html, script, json, text, _default。

3 $.post()语法:


        jQuery.post(url, [data], [callback], [type])

二:AJAX的实现原理

                js内置的有XMLHttpRequest对象向服务器发送请求

                XMLHttpRequest也会接收服务器发送回来的文本(PrintWriter的out对象写出的文本)

               js接收到文本信息后对页面做相应的修改实现页面局部的动态修改

三:AJAX的核心对象,方法属性

   1  AJAX的核心 对象  : XMLHttpRequest
          2 创建XMLHttpRequest对象
                let xhr = new XMLHttpRequest();
          3 常用方法:
                open(method,url,async) 规定请求的类型、URL 以及是否异步处理请求。
                        参数:
                            method:请求的类型;GET 或 POST
                                    get请求 :  url?name=value
                                                    send()
                                    post 请求 : 数据写在send(name=value)
                            url:文件在服务器上的位置
                            async:true(异步)或 false(同步)

                send(string) 将请求发送到服务器。
                        参数:
                         string:仅用于 POST 请求
          4 属性
                readyState 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
                                    0: 请求未初始化
                                    1: 服务器连接已建立
                                    2: 请求已接收
                                    3: 请求处理中
                                    4: 请求已完成,且响应已就绪

                status  :响应的状态码
                        200: "OK"
                        404: 未找到页面
          5 事件:
                onreadystatechange: 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
           6 响应
                responseText: 获得字符串形式的响应数据。

四:ajax实现步骤

       

匹配中文字符

let reg = /[\u4e00-\u9fa5]{1,}/;

五:验证用户名是否可用,实现商品状态的改变

使用ajax,写js代码实现验证写死的用户名

                   根据get到的数据跑一遍服务器,服务器写值,ajax可以获取到该值实现js对页面的动态改变

<%--Created by IntelliJ IDEA.User: rkDate: 2024/4/22Time: 9:53To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>注册</title></head><body><form action="" >用户名 <input type="text" name="name" id="name" onblur="checkName()"><span id = "usertips" >用户名包含8-15位字母数字下划线不能以数字开头</span> <br>密码 <input type="password" name="password">昵称 <input type="text" name="nick"><input type="submit" value="提交"></form><input type="hidden" id="path" value="${pageContext.request.contextPath}"><script>let xhr = new XMLHttpRequest();let path = document.getElementById("path").value;function checkName(){let name = document.getElementById("name").value;let reg = /^[a-z][a-z\d]{7,14}$/iif (!reg.test(name)){document.getElementById("usertips").innerHTML = "用户名格式错误"document.getElementById("usertips").style.color = "red"return;}xhr.open(get,path+"/register?name="+name+"&time"+Math.random());xhr.send();xhr.onreadystatechange =getMsg}function getMsg(){if (xhr.readyState==4 && xhr.status==200){let str = xhr.responseTextif (str=="true"){document.getElementById("usertips").innerHTML = "用户名正确"document.getElementById("usertips").style.color = "green"}else {document.getElementById("usertips").innerHTML = "用户名重复"document.getElementById("usertips").style.color = "red"}}}</script></body>
</html>

 使用ajax,写jQuery代码实现匹配数据库的用户名

                                  根据get到的数据跑一遍服务器,服务器写值,ajax可以获取到该值实现js对页面的动态改变

javascript">$(function (){let path = $("#path").val()$("#name").blur(function (){let adname = $(this).val();let reg = /^[a-z][a-z\d]{1,15}$/ilet tipObj = $("#tips")if (!reg.test(adname)){tipObj.html("用户名格式有误").css("color","red")return;}console.log(adname);$.ajax({"url": path+"/Register","type": "get","data": {name:adname,t:Math.random()},"dataType":"text","success":function (result){if (result=="true"){$("#tips").html("用户名可用").css("color","green")}else {$("#tips").html("用户名bu可用").css("color","red")}}})})// $.ajax( {//     "url"            :  "url",                      // 要提交的URL路径//     "type"         :  "get",                     // 发送请求的方式//     "data"         :  data,                      // 要发送到服务器的数据  name=value&name=value ,{ name: "John", time: "2pm" }//     "dataType" :  "text",                   // 指定响应的数据类型 :text,JSON//     "success"  :  function(result) { // 请求成功后要执行的代码  参数:result是服务器响应后的数据//     },//     "error"       :  function() {           // 请求失败后要执行的代码//     }// } );//$.post  $get  // $.post(path+"/Register",{name:adname,t:Math.random()},function (result){//     if (result=="true"){//         $("#tips").html("用户名可用").css("color","green")//     }else {//         $("#tips").html("用户名bu可用").css("color","red")//     }// },"text")
})
<%--Created by IntelliJ IDEA.User: rkDate: 2024/4/16Time: 14:10To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>注册</title></head>
<body>
<form action="${pageContext.request.contextPath}/Registure" method="post">
<%--    用户id<input type="text" name="id"> <br>--%>用户名 <input type="text" name="name" id="name"><span id="tips">注意用户名格式</span><br>密码 <input type="password" name="password"><span>${errMsg}</span><c:remove var="errMsg"></c:remove><br>昵称 <input type="text" name="nick"> <br><input type="submit" value="提交注册"><input type="reset" value="重置"> <br><input type="hidden" id="path" value="${pageContext.request.contextPath}"><a href="${pageContext.request.contextPath}/index.jsp">登录</a>
</form><script src="js/jquery-3.5.1.min.js"></script>
<script src="js/registerjQuery.js"></script>
</body>
</html>

六:ajax动态修改员工在职状态,并动态修改离职操作不可再操作,变成文本信息。

 


http://www.ppmy.cn/server/23006.html

相关文章

手动在Ubuntu22.04上部署LAMP环境

简介 LAMP环境是常用的Web开发环境之一&#xff0c;其中LAMP分别代表Linux、Apache、MySQL和PHP。本文介绍如何在Ubuntu操作系统的ECS实例内部署LAMP环境。 准备工作 该实例必须满足以下条件&#xff1a; 实例已分配公网IP地址或绑定弹性公网IP&#xff08;EIP&#xff09;。…

git commit message

文章目录 什么是commit message组成类型*作用范围*主题*正文&#xff08;可选&#xff09;注脚&#xff08;可选&#xff09; 什么是commit message 在我们使用git commit命令提交代码变更时&#xff0c;用于描述本次变动内容或理由的信息。对于每一次代码提交&#xff0c;都应…

低代码引领AI创新:业务解决方案智能化设计

当低代码平台与AI技术巧妙融合&#xff0c;一场关于构建智能化应用的新革命正在悄然上演。本篇文章主要从低代码开发的优势、AI在低代码开发的融入及应用案例&#xff0c;来探讨更高效、智能的业务解决方案&#xff0c;希望能对您有所帮助&#xff01; 一、低代码平台&#xf…

声波清洗机十大品牌:2024年度TOP10高质量超声波清洗机品牌盘点

眼镜没有清洗干净带来的危害可不算小&#xff01;长期佩戴模糊不清的眼镜&#xff0c;不仅影响视力&#xff0c;加深近视度数&#xff0c;在戴眼镜的时候总是习惯用手去扶眼镜&#xff0c;以及日常生活使用佩戴眼镜时会让镜片以及镜框布满污垢和细菌&#xff0c;长期以往也会对…

负载均衡简介

负载均衡是分布式系统中一种重要技术&#xff0c;用于优化资源使用、提高服务可用性和响应速度&#xff0c;确保系统的扩展性和可靠性。主要的负载均衡种类包括以下几种&#xff1a; 1. **硬件负载均衡**&#xff1a; - **概念**&#xff1a;通过专门设计的硬件设备来分发网…

WPF之textbox输入框

在wpf中textbox标签代表输入盒子。 常用属性 SelectionBrush选定文本的颜色BorderBrush边框颜色fontsize文本大小Foreground字体颜色 事件 TextChanged输入框发生变化时触发的事件 实例: 功能: 设置输入框发生变化获取文本内容 <Grid><!--SelectionBrush 选定的文…

遭遇字节对齐导致的错误一例

由于系统不支持UTF8中文&#xff0c;所以改成了wchar_t。我看了一下字幕&#xff0c;0、2、4不显示&#xff0c;1、2、3显示。 仔细看了代码&#xff0c;没有发现可疑的地方。相关代码就改了几处。回滚代码&#xff0c;正确。如果直接赋值&#xff0c;正确。同事建议换个字体&…

【Elasticsearch<一>✈️✈️】简单安装使用以及各种踩坑

目录 &#x1f378;前言 &#x1f37b;一、软件安装&#xff08;Windows版&#xff09; 1.1、Elasticsearch 下载 2.1 安装浏览器插件 3.1、安装可视化工具 Kibana 4.1、集成 IK 分词器 &#x1f37a;二、安装问题 &#x1f379;三、测试 IK 分词器 ​&#x1f377; 四、章…