day83 AJAX

        1什么是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])

        2AJAX的实现原理

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

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

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

        3AJAX的核心对象,方法属性

   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: 获得字符串形式的响应数据。

        4ajax实现步骤

       

匹配中文字符

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

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

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

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

<%--
  Created by IntelliJ IDEA.
  User: rk
  Date: 2024/4/22
  Time: 9:53
  To 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}$/i
  if (!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.responseText
      if (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}$/i
        let 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: rk
  Date: 2024/4/16
  Time: 14:10
  To 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动态修改员工在职状态,并动态修改离职操作不可再操作,变成文本信息。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/566751.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android11 SystemUI clock plugin 插件入门

插件的编写 参照ExamplePlugin&#xff0c;需要系统签名。 需要先编译以下模块得到jar&#xff0c;引用在项目中。 m SystemUIPluginLibcom.android.systemui.permission.PLUGIN PluginManager.addPluginListener SystemUI 是如何发现 clock plugin 的&#xff1f; Syste…

光纤网络电力控制系统设计方案:623-6U CPCI的光纤网络电力控制系统

6U CPCI的光纤网络电力控制系统 一、设备概述 柔性直流输电系统中用于控制与测量的FS系统&#xff0c;适用于风电和太阳能发电的并网快速数值计算和闭环控制&#xff0c;以及与直流输电系统的换流器有关的特殊控制功能&#xff0c;包括门控单元的信号处理。该控制板的最大…

仓储管理解决方案:混合低代码与定制开发,实现高灵活性与高效率

引言 在当今竞争激烈的商业环境中&#xff0c;仓储管理成为了企业供应链中不可或缺的一环。有效的仓储管理不仅可以帮助企业降低库存成本、提高库存周转率&#xff0c;还能够提升客户满意度和整体运营效率。然而&#xff0c;随着市场需求的不断变化和业务规模的不断扩大&#…

第⑯讲:Ceph集群Pool资源池管理以及PG的数据分布的核心技术要点

文章目录 1.Pool资源池的管理1.1.查看Pool资源池列表1.2.创建一个Pool资源池1.3.查看Pool资源池的参数信息1.4.修改Pool资源池的参数信息1.5.为Pool资源池设置应用模式1.6.重命名Pool资源池1.7.设置Pool资源池的限额1.8.删除Pool资源池1.9.查看Pool资源池的利用率 2.PG的数据分…

打印菱形(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i 0;int k 0;int j 0;//打印上半部分&#xff1b;for (i 1; i < 4; i){//打印空…

【机器学习300问】78、都有哪些神经网络的初始化参数方法?

在训练神经网络时&#xff0c;权重初始化是确保良好收敛的关键步骤之一。不合适的初始化方法可能会导致梯度消失或爆炸&#xff0c;特别是在深层网络中。那么都有哪些神经网络的初始化参数方法呢&#xff1f;选择它这些方法的原则是什么&#xff1f; 一、常用神经网络初始化参…

Parallels Desktop 19完美中文版 PD19虚拟机详细图文安装教程 亲测兼容M1/M2

对于许多Mac用户来说&#xff0c;运行Windows应用程序是必不可少的。也许你的雇主使用的软件只适用于Windows&#xff0c;或者需要使用依赖于某些Windows技术的网站。或者你想在Mac上玩Windows游戏。或者&#xff0c;你可能需要在其他操作系统上测试应用程序和服务——你可以在…

Tomcat启动闪退疑难排解全攻略:资深技术视角详解(详细)

Tomcat 启动闪退问题是在尝试启动Apache Tomcat服务器时&#xff0c;遇到的一种情况&#xff0c;其中服务器进程无法正常运行并立即退出。这个问题可能是由于多种原因造成的&#xff0c;包括配置错误、端口冲突、类加载问题等。作为一个资深技术人员&#xff0c;解决这类问题需…

Llama3本地部署的解决方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Vitis HLS 学习笔记--优化指令-BIND_OP_STORAGE

目录 1. BIND_OP_STORAGE 概述 1.1 BIND_OP 1.2 BIND_STORAGE 2. 语法解析 2.1 BIND_OP 2.2 BIND_OP 用法示例 2.3 BIND_STORAGE 2.4 BIND_STORAGE 示例 3. 实例演示 4. 总结 1. BIND_OP_STORAGE 概述 BIND_OP_STORAGE 其实是两个优化指令的合称&#xff1a;BIND_OP…

SAM5808B 法国追梦DREAM 音频DSP芯

法国追梦/DERAM SAM5504/5704/5716/5808音频DSP芯片,开发板&#xff0c;方案 可用于电子鼓、电子琴、电吉他、效果器、均衡器、啸叫抑制器等电声产品领域 一、全系列芯片&#xff1a; SAM2634 SAM2695 SAM5504B SAM5704B SAM5708B SAM5808B SAM5716B SAM5916B... 二…

python基础知识一(注释、变量以及类型、类型转换)

目录 注释&#xff1a; 注释分为两种&#xff1a; 注释的作用&#xff1a; 注释的使用原则&#xff1a; 编写一段代码&#xff0c;对比一下有无注释的区别&#xff0c;以冒泡排序为例 1. 无注释版&#xff1a; 感官上是不是有点不清晰&#xff1f; 2. 有注释版&#xff1…

介绍TCP三次握手、传输数据、四次挥手标志为确认号变化规律

TCP协议的三次握手是一个关键过程&#xff0c;用于在客户端和服务器之间建立可靠的连接。以下是三次握手的详细过程&#xff0c;包括标志位、序列号以及ACK的变化规律&#xff1a; 第一次握手&#xff1a; 客户端&#xff1a; 标志位&#xff1a;SYN1&#xff08;表示请求建立…

什么是定点数?

在实际的工程应用中&#xff0c;往往会进行大量的数学运算。运算时除了会用到整数&#xff0c;很多时候也会用到小数。而我们知道在数字电路底层&#xff0c;只有「高电平1」和「低电平0」的存在&#xff0c;那么仅凭 0和1 该如何表示小数呢&#xff1f; 数字电路中&#xff0…

共享股东模式:实体门店的创新商业模式

大家好&#xff0c;我是微三云周丽&#xff0c;今天给大家分析当下市场比较火爆的商业模式&#xff01; 小编今天跟大伙们分享什么是共享股东模式&#xff1f; 在传统的商业模式中&#xff0c;实体门店通常由单一的老板或少数股东掌控&#xff0c;并且经营模式相对封闭。然而&…

grafana报错This panel requires Angular (deprecated)

1.原因 报错解释&#xff1a; Grafana在更新到7.0版本后&#xff0c;弃用了AngularJS&#xff08;一种用于构建大型Web应用的JavaScript框架&#xff09;。在早期的Grafana版本中&#xff0c;某些面板可能依赖于AngularJS&#xff0c;但这种依赖已经逐步被新的React或Vue面板所…

基于SSM+Vue的护工预约服务小程序和后台管理系统

1、系统演示视频&#xff08;演示视频&#xff09; 2、需要请联系

每日一题 — 二分查找

704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 朴素二分查找模板&#xff1a; while(.......){//防止溢出int mid left(right - left)/2;if(........){right mid-1;}else if(......){left mid1;}else{return mid;}} 代码&#xff1a; public int search(int[] num…

【Python进阶实战】Flask接口并发实战

【Python进阶实战】Flask接口并发实现 前言Flask阻塞接口接口实现接口阻塞 Flask并发接口接口实现接口并发 服务部署Windows部署Linux部署gunicorn安装gunicorn运行 结语 前言 Python版本&#xff1a;3.12.3 IDE&#xff1a;Pycharm 2024.1 对于Flask接口阻塞问题&#xff0…

沙漠里的气膜场馆,你见过吗?

在茫茫的沙漠之中&#xff0c;一座独特的建筑傲然而立&#xff0c;宛若一朵盛开的奇葩。这并非是传统的砖瓦建筑&#xff0c;也不是典型的钢筋混凝土构造&#xff0c;而是一座气膜场馆&#xff0c;以其轻盈的身姿和独特的设计&#xff0c;在沙漠中展现出了无与伦比的魅力。 这座…