原生JS局部刷新

article/2025/10/18 9:54:16

目录

使用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;@Overrideprotected 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());}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}

login.jsp

<%--Created by IntelliJ IDEA.User: God_LikeDate: 2023/4/2Time: 16:21To 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>


http://chatgpt.dhexx.cn/article/gQqdxhpl.shtml

相关文章

html局部刷新数据,局部刷新.html

&#xfeff;局部刷新 $axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; }; $axure.utils.getOtherPath function() { return resources/Other.html; }; $axure.utils.getReloadPath function() { return resources/reload.html;…

flutter 局部刷新

目的&#xff1a;局部刷新 效果&#xff1a;点击右下角刷新按钮后&#xff0c;对九宫格中的图片刷新状态 思路&#xff1a;两个方法 一、整个页面都刷新&#xff0c;局部组件有变化&#xff0c;用UniqueKey() 二、只针对局部组件刷新&#xff0c;用GlobalKey() 具体操作&…

什么是局部刷新

局部刷新 浏览器在展示数据时&#xff0c;此时在窗口既可以看到本次的响应数据&#xff0c;同时又可以看到浏览器内存原有数据。 局部刷新原理&#xff1a; 不由浏览器发送请求给服务端 浏览器委托浏览器内存中一个脚本对象代替浏览器发送请求 这个行为导致服务端直接将…

【PSFTP】Windows从Linux获取文件或目录

1、安装Putty Win10先安装Putty 官方下载地址&#xff1a;http://www.putty.be/latest.html 安装后&#xff0c;Win10运行PSFTP 2、登录Linux 提示使用open host.name连接服务器 psftp: no hostname specified; use "open host.name" to connect psftp>参考…

putty、pscp、psftp 使用教程

如何从安装了Windows的工作电脑连远程接到Linux服务器?其实有很多软件,比如 PuTTY、XShell、CRT、MobaXterm等等。不过还是 PuTTY最简单易用、无需安装、并且开源免费。PuTTY其实是一个软件套装,里边除了最常用的putty之外,还包含了像 pscp、psftp等可以用于文件传输的工具…

putty和psftp命令行参数

putty和psftp命令行参数 https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip https://the.earth.li/~sgtatham/putty/latest/puttydoc.zip https://the.earth.li/~sgtatham/putty/latest/putty-0.72.tar.g…

psftp

2019独角兽企业重金招聘Python工程师标准>>> 当连接到远程计算机以后&#xff0c;使用以下命令&#xff1a; bye 结束 psftp 。 cd 改变远程服务器的目录。 chmod 改变远程服务器的文件或文件夹的权限及属性。 del 删除远程服务器上的文件。 dir …

linux psftp,使用PSFTP实现Windows、Linux之间的文件传输

安装PuTTY时自动安装了PSFTP 使用PSFTP可以实现Winodws、Linux之间的文件传输。 打开PSFTP&#xff0c;输入Linux的ip地址&#xff0c;输入要登录的用户名、密码 Windows向Linux传文件&#xff1a; put D:\jdk-8u241-linux-x64.rpm /root/jdk-8u241-linux-x64.rpm put 本地文件…

putty以及psftp的基本操作,使用方法等

1、putty登陆远程服务器 open之后进入登陆界面&#xff0c;输入用户名之后点击Enter&#xff0c;之后输入登陆密码&#xff08;界面不显示&#xff0c;输入正确后直接Enter就可以&#xff09; 进入之后的界面 之后就可以输入命令进行操作了 2、文件传输psftp&#xff1a; 运行…

PSFTP工具的使用教程

PSFTP&#xff1a;是Putty的SFTP客户端&#xff0c;可以通过SFTP协议在两台电脑之间的传输文件。它和 PSCP相比的优点在于可以与服务器进行交互&#xff0c;遍历服务器上的文件系统&#xff0c;在一个会话中上传或下载多个文件。而 PSCP 只能一次传输一个文件&#xff0c;传输完…

Vector3.Lerp

Unity3D中的线性插值Lerp()函数解析 在unity3D中经常用线性插值函数Lerp()来在两者之间插值&#xff0c;两者之间可以是两个材质之间、两个向量之间、两个浮点数之间、两个颜色之间&#xff0c;其函数原型如下&#xff1a; Material.Lerp 插值 function Lerp(start : Materi…

Unity 的Vector3.Project 和 Vector3.ProjectOnPlane

目录 1.public static Vector3 Project(Vector3 vector, Vector3 onNormal); 描述 &#xff1a; 代码&#xff1a; 效果&#xff1a; 结论&#xff1a; 2.public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal);返回向量在平面上的位置。 描述 …

Vector3——简单的3D向量类

参考资料&#xff1a;1、 [美] 邓恩&#xff08;Dunn F.&#xff09;著. 3D数学基础——图形设计与开发. 史银雪&#xff0c;陈洪&#xff0c;王荣静 译 清华大学出版社 p57-65 2、http://www.2cto.com/kf/201311/260139.html 编程环境 QT4.8.4 VS2010 本文用 C实现一个简单…

Unity Vector3.Dot(VectorA, VectorB)

Unity Vector3.Dot(VectorA, VectorB) Vector3.Dot(VectorA, VectorB) 等于 VectorA * VectorB。 而对于两个向量的乘积计算&#xff1a; VectorA * VectorB Ax * Bx Ay * By Az * Bz 例如&#xff1a; VectorA(1,2,3) * VectorB(4,5,6) 1*42*53*632 一般应用于判断飞行…

Unity - 优化 Vector3.ProjectOnPlane

文章目录 起因好奇绘制 Vector3.ProjectOnPlane 的参数&#xff0c;与返回结果绘制结果定位作用、优化完整脚本ProjectReferences 起因 之前偶然项目中看到过 API Vector3.ProjectOnPlane API 的使用 然在这篇文章也看到&#xff1a;Unity3d那些你不常用但确有其用的方法—Ve…

Unity —— Vector3

Vector3向量&#xff0c;在三维坐标系中带有方向和大小的数据 Vector3中一些常量&#xff1a; 1、Vector3.back&#xff08;0,0,-1&#xff09; 2、Vector3.forward&#xff08;0,0,1&#xff09; 3、Vector3.left&#xff08;-1,0,0&#xff09; 4、Vector3.right&#xff0…

Unity3D_向量(Vector3)数学基础

向量&#xff08;Vector3&#xff09; 在虚拟的游戏世界中&#xff0c;3D数学决定了游戏&#xff0c;如何计算和模拟出开发者以及玩家看到的每一帧画面。学习基础的3D数学知识可以帮主用户对游戏引擎产生更深刻的了解。 向量定义&#xff1a;既有大小又有方向的量叫做向量。在…

Vector3类详解

|| 欢迎讨论技术的可以相互加微信&#xff1a;windgs (请备注csdnxx职业) || --------------------- 作者&#xff1a;隨意的風 来源&#xff1a;CSDN 原文&#xff1a;https://blog.csdn.net/Windgs_YF/article/details/86550843 版权声明&#xff1a;本文为博主原创文章…