首页 > 其他分享 >异步请求技术--Ajax(教你彻底学会Ajax,关键细节,原生Ajax,应用案例详解,最易懂图文讲解!!! 建议收藏!)

异步请求技术--Ajax(教你彻底学会Ajax,关键细节,原生Ajax,应用案例详解,最易懂图文讲解!!! 建议收藏!)

时间:2024-07-12 10:28:44浏览次数:22  
标签:异步 用户名 XMLHttpRequest king -- xhr Ajax import

1.什么是Ajax

1. AJAX "Asynchronous Javascript And XML"( 异步 JavaScript XML) 2. Ajax 是一种浏览器 异步发起请求 ( 指定发哪些数据 ) 局部更新页面 的技术

Ajax在线3文档 重点是XHR创建 XHR请求 XHR响应!等

1.1 一图胜千言

 2.Ajax的通信原理

具体解释:如上图所示。

相对于传统的web应用。Ajax技术就是多了Ajax引擎也就是XMLHttpRequest对象。

当前端中的表单要发送数据给后端的时候,前端会首先创建一个XMLHttpRequest对象。

然后指定你要传送的数据,而非整个form表单。 通过Http请求将数据发送给后端。

只不过XMLHttpRequest对象发送数据的时候是异步的!

什么是异步:就是当前端发送数据给后端时,前端界面不需要对响应进行等待挂机状态,前端界面依然可以做自己的事,这是很重要的。

后端界面通过Http响应发送给前端的XMLHttpRequest对象,再通过事件绑定机制,局部刷新前端界面!

简而言之呢,就可以看出Ajax引擎对象,作为两者数据交换的中间人,帮我完成异步局部刷新,指定发送数据等等操作!

3.应用实例-验证用户名是否存在

1) 点击验证用户名 , 使用 ajax 方式, 服务端验证该用户名是否是king是的话就说名用户已经占用输出对应的json数据 3) 对页面进行局部刷新 , 显示返回信息 具体结果如图所示

前端代码 整个是在Tomcat中间键运行的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
    <script type="text/javascript">
        window.onload = function ()
        {
            let checkButton = document.getElementById("checkButton");
            checkButton.onclick = function(){
                //先创建XMLHttpRequest对象
                let xhr = new XMLHttpRequest();

                //获取用户填写的用户名
                let uname = document.getElementById("uname").value;

                //准备发送指定的数据
                xhr.open("GET","CheckUserServlet?username="+uname,true)

                //在send函数调用前,要为Ajax引擎对象绑定事件
                //改事件表示当数据发送变化时,会触发这个事件
                xhr.onreadystatechange = function(){
                    if(xhr.status == 200 && xhr.readyState == 4)
                    {
                        //把返回的Json数据发送到div上
                        document.getElementById("div1").innerHTML = xhr.responseText;
                        //console.log(xhr.responseText);
                        // console.log("xhr=",xhr);
                        let responseText = xhr.responseText;
                        if(responseText != "")
                        {
                             document.getElementById("myres").value = "用户名不可用";
                        }else
                        {
                            document.getElementById("myres").value = "用户名可用";
                        }
                    }

                }
                //真正发送Ajax-Http请求
                //如果是post请求,参数应该写在send(String)里面
                xhr.send() //用于GET请求

            }
        }
    </script>
</head>
<body>
<h1>用户注册</h1>
<form action="#" method="post">
    用户名字:<input type="text" name="username" id="uname">
    <input type="button" id = "checkButton" onclick="checkUser();" value="验证用户名">
    <input style="border-width: 0;color: red" type="text" id="myres"><br/><br/>
    用户密码:<input type="password" name="password"><br/><br/>
    电子邮件:<input type="text" name="email"><br/><br/>
    <input type="submit" value="用户注册">
</form>
<h1>返回的 json 数据</h1>
<div id="div1"></div>
</body>
</html>
package com.sn.servlet;

import com.google.gson.Gson;
import com.sn.entity.User;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author ygd
 */
public class CheckUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        System.out.println("username="+username);
        resp.setContentType("text/html;charset=utf-8");
        //验证用户名是否为king
        if("king".equals(username)){
            User king = new User(100, "king", "[email protected]");
            //将king转换成字符串
            String json = new Gson().toJson(king);
            resp.getWriter().write(json);
        }else{
            //
            resp.getWriter().write("");

        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}

相应的具体文档信息: 

 

 后续更新Ajax中JQuery的运用!

 本文章通过学习老韩视频的学习心得,如有版权问题,博主会及时删除。

欢迎小伙伴去看老师视频            老韩

标签:异步,用户名,XMLHttpRequest,king,--,xhr,Ajax,import
From: https://blog.csdn.net/m0_74301606/article/details/140318223

相关文章

  • 苹果被大模型打得措手不及
    生成式AI发布已经快2年了,国内外不少公司都有自己的大模型,但作为科技龙头之一的苹果却一直没有消息;显然,苹果是落后于AI发展的时间线了。2023来,英伟达凭借其AI硬件业务的强劲表现,实现市值6.3倍增长,达到2.36万亿美元。ChatGPT、Sora等生成式AI的发布,更使科技行业迈入全新的......
  • 【项目实战】深入解析HTTP状态码:401 Unauthorized
    在网络通信过程中,HTTP状态码对于服务器和客户端之间的信息交流起着至关重要的作用。其中,401Unauthorized(未授权)是一个非常关键的状态码,它涉及到安全认证的方面。本文将详细介绍401状态码,分析其原因,并提供针对性的解决方案,以帮助开发者和用户更好地理解和处理这种情况。1.......
  • 经典再现,回顾常见排序算法之冒泡排序,附Java源码及优化改进实现
    回顾一下排序算法,老酒装新瓶,给自己的技能点做个回放。排序(Sorting)是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个有序的序列,也可以理解为高矮个站队。衡量排序算法的两个指标,时间复杂度和稳定性。举个例子,如果我们的数据......
  • 一类账户认证API在Java、Python、PHP中的使用教程
    随着金融科技的快速发展,一类账户认证在金融服务中扮演着越来越重要的角色。对于个人和企业而言,拥有一个高级别的账户不仅能提高交易效率,还能享受到更多优惠和服务。然而,这也带来了账户安全的挑战和风险。为了确保账户的真实性和合法性,一类账户认证应运而生。它通过对用户......
  • 【项目实战】深入解析HTTP状态码:405 Method Not Allowed
    HTTP状态码在网站和网络应用的开发中扮演着重要角色,其中405MethodNotAllowed是一种相对常见但有时会被误解的状态码。本文将详细解释405状态码的含义、发生的原因,并提供解决方法,以帮助开发者和网站管理员更好地处理这种情况。1.状态码简介405MethodNotAllowed是一......
  • cocos手机端屏幕常亮
    直接用nosleep.js在手机端没生效,没走进那个唤醒的函数里,估计是cocos在手机浏览器端的navigator.wakeLock用不了或者cocos把手机端的click阻止了,我在电脑端是可以唤醒的。上面的这个的方法其实和nosleep是一样的,大概就像是你在浏览器一直看视频,你的手机并不会灭屏那样<videoco......
  • cocos Buffer的问题
    结果问题:Nodejs直接用Buffer就可以了,但是cocos这边,不能直接用根据大大的方式:报没有默认导出,改了一下声明文件报这个错误:估计b没被正确解析又改了一下:然后还是有问题:打断点看看:变成了一个包含Buffer的对象,我需要的是Buffer就很奇怪:好像声明文件里的就是B......
  • ffmpeg命令合并视频,点一下脚本就可以直接合并了
    打开记事本。复制并粘贴以下代码:保存为merge_videos.bat双击merge_videos.bat文件运行脚本。@echooffchcp65001>nul::创建临时文件列表set"list=filelist.txt"ifexist"%list%"del"%list%"::将当前目录下所有mp4文件添加到文件列表for%%iin(*.mp4)do(......
  • Uniapp 使用 Leaflet
    在Uniapp中使用Leaflet,可以按照以下步骤进行:安装Leaflet:如果您使用的是H5平台,可以通过以下命令在项目根目录安装Leaflet:npminstallleaflet对于其他平台(如小程序),可能无法直接通过npm安装,需要手动引入Leaflet的相关资源文件。在页面中引入Leaflet:在需......
  • Java计算机毕业设计的网上电影售票系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和人们生活节奏的加快,网络购物、在线娱乐等数字化生活方式已成为主流。电影作为大众喜爱的文化娱乐形式之一,其售票方式也经......