原生JS局部刷新

2023-11-13

目录

使用XMLHttpRequest对象进行异步请求:

        2.使用fetch API进行异步请求

      3.使用事件监听器进行局部刷新

       4.servlet实现img验证码局部刷新

依赖jar包

Servlet

login.jsp


在原生JS中,可以使用以下几种方式实现局部刷新:

  1. 使用XMLHttpRequest对象进行异步请求:

// 创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 设置请求方式和请求地址
xhr.open('GET', 'example.php', true);
// 发送请求
xhr.send();
// 监听响应状态变化
xhr.onreadystatechange = function() {
  // 响应完成且响应状态为200时,更新页面
  if (xhr.readyState === 4 && xhr.status === 200) {
    var response = xhr.responseText;
    // 更新DOM节点内容
    document.getElementById('result').innerHTML = response;
  }
};

        2.使用fetch API进行异步请求

// 发送GET请求
fetch('example.php')
  .then(function(response) {
    // 将响应解析为文本格式
    return response.text();
  })
  .then(function(data) {
    // 更新DOM节点内容
    document.getElementById('result').innerHTML = data;
  });

      3.使用事件监听器进行局部刷新

// 获取要刷新的DOM节点
var node = document.getElementById('result');
// 添加点击事件监听器
node.addEventListener('click', function() {
  // 发送请求获取更新内容
  fetch('example.php')
    .then(function(response) {
      // 将响应解析为文本格式
      return response.text();
    })
    .then(function(data) {
      // 更新DOM节点内容
      node.innerHTML = data;
    });
});

需要注意的是,使用以上方式进行局部刷新时,需要确保返回的数据格式与页面中要更新的DOM节点类型匹配。另外,使用异步请求时需要注意跨域问题。

       4.servlet实现img验证码局部刷新

依赖jar包

 

Servlet

package com.xzm.view;
import cn.dsna.util.images.ValidateCode;
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;
/**
 * @Description 生成图片验证码
 * @Author XueZhimin
 * @CreateTime 2023-04-03 16:12
 */

@WebServlet("/codeServlet")
public class CodeServlet extends HttpServlet {
    private static ValidateCode validateCode = null;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        validateCode=new ValidateCode(100, 30, 4, 20);
        String code = validateCode.getCode();
        System.out.println(code);
        request.getSession().setAttribute("code",code);
        validateCode.write(response.getOutputStream());
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

login.jsp

<%--
  Created by IntelliJ IDEA.
  User: God_Like
  Date: 2023/4/2
  Time: 16:21
  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="loginServlet" method="post">


    <table border="1" width="80%" style="margin: auto">

        <tr>
            <th>用户名</th>
            <td>
                <input type="text" name="name" placeholder="请输入用户名">
            </td>
        </tr>

        <tr>
            <th>密码</th>
            <td>
                <input type="password" name="password" placeholder="请输入密码">
            </td>
        </tr>
        <tr>
            <th>
                <img id="code" src="codeServlet" onclick="reFreshCode()">
            </th>

            <td>
                <input type="code" name="code" placeholder="请输入验证码">
            </td>
        </tr>

        <tr>
            <td colspan="2">
                <input style="width: 100%" type="submit" value="登录">
            </td>
        </tr>


    </table>


</form>


<a href="registerServlet">注册</a>
</body>
</html>

<script type="application/javascript">

    //实现验证码局部刷新
    function reFreshCode() {
        // 发送GET请求
        fetch('codeServlet')
            .then(function(response) {
                // 将响应解析为文本格式
                return response.url;
            })
            .then(function(data) {
                // 更新DOM节点内容
                document.getElementById('code').src = data;//DOM操作img标签,更改src
            });
    }

</script>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

原生JS局部刷新 的相关文章

随机推荐

  • fairygui简单使用(unity)

    本文主要是引导怎么从fairygui页面ui编辑到unity的过程 如果想详细的那种 最好下载一个官方案例 里面都有详细的教程 不过这个对于新手来说还是挺好的 因为我刚开始以为是自己创建代码 自己写 先去官网下载一个gui编辑器 这是API
  • utf-8和gb2312的相互转换

    最近老是涉及到编码与解码的问题 GB2312转UTF 8 又或者UTF 8转GB2312 无意中在CSDN闲逛发现了一个CString 转UTF 8的思路 现摘寻下来 免得到时又找不着了 CString UTF8Convert CStrin
  • GDB 调试过程

    一 gdb 1 gdb 启动gdb 2 gdb tui 启动gdb 并且分屏显示源代码 3 gdb app 启动gdb调试指定程序app 4 gdb
  • WebSocket 前端使用

    h5提供了WebSocket网络协议 可以实现浏览器与服务器的双向数据传输 构造函数 WebSocket url protocol url WebSocket API URL URL之前需要添加ws 或者wss 类似http https p
  • FastICA代码(matlab版本)

    icasig A W fastica eegdata approach symm g tanh function Out1 Out2 Out3 fastica mixedsig varargin FASTICA Fast Independe
  • 后端开发学习Vue(一)

    Vue的介绍 官网 https cn vuejs org Vue是一个简单容易上手前端框架 例如 下面的代码可以快速构建一个表格
  • Redis数据结构存储系统:第二章:如何使用,BAT等大厂必问技术面试题

    public class RedisUtil private JedisPool jedisPool public void initPool String host int port int database 一线大厂Java面试题解析
  • map与java bean相互转换

    map与java对象的相互转换 1 使用org apache commons beanutils转换 2 使用Introspector转换 3 使用reflect转换 4 使用net sf cglib beans BeanMap转换 5 使
  • ubuntu 强制关闭卡死的pycharm

    ubuntu 环境是 16 04 终端输入 monitor 点击 System monitor 之后输入java 上图是已经删除过的 找到java之后右键点击kill OK
  • Vue(五)&&git

    Vue 三十二 git 1 概述 Git和代码托管中心 2 常用命令 3 本地仓库 4 远程仓库 5 团队内协作 1 非冲突 2 冲突 3 可视化 6 跨团队协作 7 分支 1 分支的好处 2 分支的构建 3 合并分支 8 SSH免密登录
  • html方框打勾字段,HTML+CSS入门 如何设置 checkbox复选框控件的对勾√样式

    本篇教程介绍了HTML CSS入门 如何设置 checkbox复选框控件的对勾 样式 希望阅读本篇文章以后大家有所收获 帮助大家HTML CSS入门 lt 我们要创建方框中的对勾 对于这一点 我们可以使用 after伪类创建一个新的元素 为
  • echarts中toolbox增加自定义图标和事件

    1 echarts提供了丰富的图标 如提供了 saveAsImage保存图片 restore 配置项还原 dataView数据视图工具 dataZoom 数据区域缩放 magicType 动态类型切换 brush 选择组件的控制按钮等 2
  • 开学第五周刷题记录

    Crypto Windows系统密码 首先拿到题目 我们打开看一下 它后缀是 hash 双击之后我们发现打不开 这种情况有两种原因 一是我们没有安装相应的软件 二是该文件被毁坏了 然后我们尝试用记事本打开看一下 结果发现原来重点在这 Adm
  • Jenkins使用问题记录

    1 启动 使用Jenkins的版本为2 138 3 下载war包后启动即可运行 指定使用8080端口 可自定义 java jar jenkins war httpPort 8080 建议后台启动 命令如下 1 启动 指定后台启动 nohup
  • 服务器性能测试脚本大全

    服务器性能测试脚本大全 SFS工具箱集成了数十种服务器性能测试脚本 包括服务器测速 内存测压 CPU跑分 硬盘写入 等待脚本非常齐全 重要的是脚本资源存储于国内节点 执行获取速度快 非那些存储在海外的 执行速度慢等的头疼 下面教大家如何安装
  • git的基本介绍与使用

    一 git的定义与配置 世界上最先进的分布式版本管理系统没有之一 作者 linus linus系统创始人 解决的问题 代码版本管理 多人协作 编写项目 通俗来说 毕业论文初始版 毕业论文修改版 毕业论文最终版 安装网址 Githttps g
  • 基于Sqli-Labs靶场的SQL注入-1~4关

    less 1 Less4联合注入讲解 目录 less 1 基于字符型 单引号 注入点的联合注入 注入类型判断 猜解数据库中字段数 爆破数据库库名以及版本号 爆破数据库中的表名以及数据库安装路径 爆破某张表中的列名以及当前数据库的用户名 查询
  • 分享一个实用的Linux的安全基线检查

    这个脚本主要是用于检查Linux系统的一些基础配置是否存在危险 能够快速的发现问题 定位问题 目前功能还不够全面 后面慢慢完善 喜欢安全的朋友可以微信关注Gamma安全实验室公众号 里面有很多高质量文章以及免费的学习资料 bin bash
  • 使用element-ui上传组件时界面抖动

    参考博客 避免使用push this fileList push name this data key url imgUrl this data key 看项目场景影响 this fileList name this data key ur
  • 原生JS局部刷新

    目录 使用XMLHttpRequest对象进行异步请求 2 使用fetch API进行异步请求 3 使用事件监听器进行局部刷新 4 servlet实现img验证码局部刷新 依赖jar包 Servlet login jsp 在原生JS中 可以