day83 AJAX

一:什么是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对页面的动态改变

$(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.rhkb.cn/news/315766.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.Docker本地镜像发布至阿里云仓库、私有仓库、DockerHub

文章目录 0、镜像的生成方法1、本地镜像发布到阿里云仓库2、本地镜像发布到私有仓库3、本地镜像发布到Docker Hub仓库 Docker仓库是集中存放镜像的地方&#xff0c;分为公共仓库和私有仓库。 注册服务器是存放仓库的具体服务器&#xff0c;一个注册服务器上可以有多个仓库&…

kubeadmin搭建自建k8s集群

一、安装要求 在开始之前&#xff0c;部署Kubernetes集群的虚拟机需要满足以下几个条件&#xff1a; 操作系统 CentOS7.x-86_x64硬件配置&#xff1a;2GB或更多RAM&#xff0c;2个CPU或更多CPU&#xff0c;硬盘30GB或更多【注意master需要两核】可以访问外网&#xff0c;需要…

Qt窗口

QMainWindow Qt 窗⼝ 是通过 QMainWindow类 来实现的。 QMainWindow 是⼀个为⽤⼾提供主窗⼝程序的类&#xff0c;继承⾃ QWidget 类&#xff0c;并且提供了⼀个预定义的 布局。QMainWindow 包含 ⼀个菜单栏&#xff08;menu bar&#xff09;、多个⼯具栏(tool bars)、多个浮动…

Python并发编程:揭开多线程与异步编程的神秘面纱

第一章&#xff1a;并发编程导论 1.1 并发与并行概念解析 1.1.1 并发性与并行性的区别 想象一下繁忙的厨房中多位厨师同时准备不同的菜肴——即使他们共享有限的空间和资源&#xff0c;也能协同工作&#xff0c;这就是并发性的一个生动比喻。并发性意味着多个任务在同一时间…

【哈希】Leetcode 面试题 01.02. 判定是否互为字符重排

题目讲解 面试题 01.02. 判定是否互为字符重排 算法讲解 直观的想法&#xff1a;我们找到一个字符串的全排列&#xff0c;然后对比当前的排列是否等于另一个字符串。如果两个字符串如果互为排列&#xff0c;所以我们知道两个字符串对应的字符出现的个数相同&#xff0c;那么…

常用图像加密技术-流密码异或加密

异或加密是最常用的一种加密方式&#xff0c;广泛的适用于图像处理领域。这种加密方式依据加密密钥生成伪随机序列与图像的像素值进行异或操作&#xff0c;使得原像素值发生变化&#xff0c;进而使得图像内容发生变化&#xff0c;达到保护图像内容的目的。 该加密方法是以图像…

Aiseesoft Blu-ray Player for Mac:蓝光播放器

Aiseesoft Blu-ray Player for Mac是一款功能强大且易于使用的蓝光播放器&#xff0c;专为Mac用户打造。它以其卓越的性能和简洁的操作界面&#xff0c;为用户带来了全新的高清蓝光播放体验。 Aiseesoft Blu-ray Player for Mac v6.6.50激活版下载 这款软件支持播放任何高质量的…

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 打家劫舍 II(难度⭐⭐)(67)

1. 题目解析 题目链接&#xff1a;213. 打家劫舍 II 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 这个问题是经典的“打家劫舍”问题的变种&#xff0c;原问题是在单排房屋中进行偷窃&#xff0c;而这个问题则是在…

机器学习:基于Sklearn、XGBoost框架,使用XGBClassifier、支持向量分类器和决策树分类器预测乳腺癌是良性还是恶性

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

数据挖掘实验一

一、实验环境及背景 使用软件&#xff1a; Anaconda3 Jupyter Notebook 实验内容&#xff1a; 1.使用Tushare或者其他手段获取任意两支股票近三个月的交易数据。做出收盘价的变动图像。2.使用Pandas_datareader获取世界银行数据库中美国&#xff08;USA&#xff09;、瑞典&…

Linux-管道通信

1. 管道概念 管道&#xff0c;是进程间通信的一种方式&#xff0c;在Linux命令中“ | ”就是一种管道&#xff0c;它可以&#xff0c;连接前一条命令&#xff0c;和后一条命令&#xff0c;把前面命令处理完的内容交给后面&#xff0c;例如 cat filename | grep hello …

IDEA 中的奇技淫巧

IDEA 中的奇技淫巧 书签 在使用ctrlalt方向键跳转时&#xff0c;或者追踪代码时&#xff0c;经常遇到的情况是层级太多&#xff0c;找不到代码的初始位置&#xff0c;入口。可以通过书签的形式去打上一个标记&#xff0c;后续可以直接跳转到书签位置。 标记书签&#xff1a;c…

C# GetField 方法应用实例

目录 关于 C# Type 类 GetField 方法应用 应用举例 心理CT设计题 类设计 DPCT类实现代码 小结 关于 C# Type 类 Type表示类型声明&#xff1a;类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义&#xff0c;以及开放或封闭构造的泛型类型。调用 t…

新媒体运营-----短视频运营-----PR视频剪辑----视频调色

新媒体运营-----短视频运营-----PR视频剪辑-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/138079659 文章目录 1. Lumetri调色&#xff0c;明暗对比度2. Lumetri调色&#xff0c;创意与矢量示波器2.1 创意2.2 矢量示波器 3. L…

前端开发攻略---用原生JS在网页中也能实现语音识别

1、语音识别的过程 语音识别涉及三个过程&#xff1a;首先&#xff0c;需要设备的麦克风接收这段语音&#xff1b;其次&#xff0c;语音识别服务器会根据一系列语法 (基本上&#xff0c;语法是你希望在具体的应用中能够识别出来的词汇) 来检查这段语音&#xff1b;最后&#xf…

纯js对比excel小工具

如何使用JavaScript和xlsx.js实现Excel文件对比&#xff1a;实战指南 在日常办公或数据分析工作中&#xff0c;我们经常需要比较两个Excel文件中的数据差异。手动对比不仅耗时费力&#xff0c;还容易出错。本文将带你通过一个简单的网页应用&#xff0c;利用JavaScript和开源库…

【极速前进】20240422:预训练RHO-1、合成数据CodecLM、网页到HTML数据集、MLLM消融实验MM1、Branch-Train-Mix

一、RHO-1&#xff1a;不是所有的token都是必须的 论文地址&#xff1a;https://arxiv.org/pdf/2404.07965.pdf 1. 不是所有token均相等&#xff1a;token损失值的训练动态。 ​ 使用来自OpenWebMath的15B token来持续预训练Tinyllama-1B&#xff0c;每1B token保存一个che…

GPT学术优化推荐(gpt_academic )

GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合GPT等等 ChatGPT/GLM提供图形交互界面&#xff0c;特别优化论文阅读/润色/写作体验&#xff0c;模块化设计&#xff0c;支持自定义快捷按钮&…

[iOS]CocoaPods安装和使用

1.了解brew、rvm、ruby、gem、cocaspods之间的关系 在 macOS 环境中&#xff0c;Brew、RVM、Ruby、Gem 和 CocoaPods 之间存在以下关系&#xff1a; Homebrew (Brew)&#xff1a;Homebrew 是 macOS 上的包管理器&#xff0c;用于安装和管理各种开源软件包。它使您能够轻松地从…

基于SpringBoot+Vue校园竞赛管理系统的设计与实现

项目介绍&#xff1a; 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;竞赛信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行…