当前位置: 首页 > news >正文

Ajax 获取进度和中断请求

HTML加入一些内容方便看效果和做交互:

<div><p>当前传输进度:<span id="progress">0%</span></p><button id="send">发送</button><button id="btn">中断</button>
</div>

JavaScript 核心代码:

// 发送请求document.getElementById('send').addEventListener('click', function () {const xhr = new XMLHttpRequest()xhr.open('GET', 'http://localhost:9001/test')xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {console.log(xhr.responseText)}}// 获取进度xhr.addEventListener('progress', function (e) {console.log(e)const percent = (e.loaded / e.total) * 100document.getElementById('progress').textContent = percent.toFixed(2) + '%'})// 点击按钮中断请求document.getElementById('btn').addEventListener('click', function () {console.log('中断请求')xhr.abort()})xhr.send()})

这里我自己弄了个简单的node服务器做测试:

const express = require('express')
const app = express()//创建get请求
app.get('/test', (req, res) => {res.setHeader('Content-Type', 'application/json;charset=utf-8')res.setHeader('Access-Control-Allow-Origin', '*')// 读取txt文件const fs = require('fs')const data = fs.readFileSync('resData.txt', 'utf-8')res.json({code: 200,message: "请求成功",data})})
//端口号9001
app.listen(9001)
console.log('server is running at http://localhost:9001')

这里resData.txt是要返回的文本内容,因为要数据凉够大才方便查看进度,所以用了文本文件


效果:

在这里插入图片描述

http://www.lryc.cn/news/484149.html

相关文章:

  • 实验5:网络设备发现、管理和维护
  • kafka 生产经验——数据积压(消费者如何提高吞吐量)
  • 对等同步身份认证(Simultaneous Authentication of Equals,简称SAE)介绍
  • Ajax 与 Vue 框架应用点——随笔谈
  • The Internals of PostgreSQL 翻译版 持续更新...
  • redis 原理篇 31 redis内存回收 内存淘汰策略
  • 微信小程序——实现二维码扫描功能(含代码)
  • 【go从零单排】HTTP客户端和服务端
  • Android 配置默认输入法
  • 交易术语汇总(Technical Trading Dictionary)
  • 【Docker】Docker基础及docker-compose
  • 从零开始的 Hugging Face 项目:我的首个在线 SQL 查询工具之旅20241111
  • 让AI为你发声!Windows电脑快速部署ChatTTS文本转语音神器
  • 【AI换脸整合包及教程】FaceFusion 3.0.0:AI换脸技术的革新之旅
  • 更新对象或数组的值的方法
  • Java线程池浅谈(创建线程池及线程池任务处理)
  • Dockerfile的使用
  • 自動換IP為什麼會不穩定?
  • 【0x0043】HCI_Write_Inquiry_Scan_Type详解
  • 飞牛云fnOS本地部署WordPress个人网站并一键发布公网远程访问
  • ctfshow-web入门-SSTI(web361-web368)上
  • pyinstaller+upx给python GUI程序添加自定义图标
  • LeetCode【0034】在排序数组中查找元素的第一个和最后一个位置
  • react-markdown内容宽度溢出和换行不生效问题
  • uniapp 上传 base64 图片
  • 让Git走代理
  • 通义千问API调用测试 (colab-python,vue)
  • H3C ER8300G2-X未授权导致信息泄露漏洞(CVE-2024-32238)
  • 随手记:简单实现纯前端文件导出(XLSX)
  • SwiftUI 高级开发教程系列 - 第 3 章:数据持久化