学习AJAX必知必会(3)~自动重启工具nodemon、缓存问题、请求超时和网络异常、取消重复请求

简介: 学习AJAX必知必会(3)~自动重启工具nodemon、缓存问题、请求超时和网络异常、取消重复请求

1、nodemon 自动重启工具(自动重启基于nodejs开发的服务端应用)

■ nodemon 是一个工具,通过在检测到目录中的文件更改时自动重新启动node应用程序来帮助开发node.js。

//安装nodemon命令(全局安装):
npm install -g nodemon


2、解决缓存问题:当请求资源不变(地址栏的url),不再发送新的请求

  • 解决:通过添加一个随机的请求参数新请求】---通过时间撮new Date( ).getTime( ) 或者 Data.now( )添加随机数
  • 一般不需要咱手动添加,工具都有自动生成一个时间撮
xhr.open('get', 'http://127.0.0.1:8000/server?t=Date.now()');//通过添加一个随机的请求参数【新请求】解决缓存问题


3、Ajax请求超时和网络异常处理

(1)Ajax请求超时:

  • 客户端html处理:设置超时时间timeout和超时回调函数ontimeout
//设置超时为2s
  xhr.timeout = 2000;
 //超时回调
  xhr.ontimeout = function () {
      alert('网络异常,请稍后再试!')
  }
  • 服务端进行延时提醒:
app.get('/server', (request, response) => {
    //设置响应头(允许跨域)
    response.setHeader('Access-Control-Allow-Origin', '*');
    //设置响应头(允许自定义请求头)
    response.setHeader('Access-Control-Allow-Headers', '*');
  //设置响应体
    setTimeout(() => {
        response.send('服务端延时响应');  
    }, 3000)
});


(2)网络异常:

  • 客户端html处理:设置网络异常回调函数onerror
xhr.onerror = function () {
      alert('你的网络似乎除了问题!');
  }


4、Ajax取消请求

■ 通过abort方法
xhr.abort();
■ 取消重复请求(通过一个布尔的标识变量)
  • isSending初始值为false, send方法执行之后,isSending值为true,获取响应数据,判断状态值为4时,当前请求完成,isSending为false
  • 通过判断isSending 是否为true,为true 执行 abort方法
//是否正在发送ajax请求
  let isSending = false;
  if(isSending) {
        //console.log('正在请求')
        xhr.abort();
  }
  isSending = true;
 //3、发送Ajax请求
 xhr.send();
 //4、事件绑定,处理服务端返回结果
 xhr.onreadystatechange = function () {
    //处理前判断服务端是否返回所有结果和服务端的状态码是2**
    if (xhr.readyState === 4) {
         isSending = false;
    }
 }
目录
相关文章
|
9天前
|
缓存 网络协议 CDN
在网页请求到显示的过程中,如何优化网络通信速度?
在网页请求到显示的过程中,如何优化网络通信速度?
168 59
|
4天前
|
网络协议 网络架构
网络协议介绍与学习
网络协议介绍与学习
14 4
|
1月前
|
前端开发
React技术栈-react使用的Ajax请求库实战案例
这篇文章介绍了在React应用中使用Axios和Fetch库进行Ajax请求的实战案例,展示了如何通过这些库发送GET和POST请求,并处理响应和错误。
34 10
React技术栈-react使用的Ajax请求库实战案例
|
4天前
|
网络协议 网络安全 数据安全/隐私保护
网络基础知识学习
如果你打算深入学习网络技术,建议从上述基础知识入手,并逐渐扩展到更高级的主题,如网络编程、网络安全、网络管理等。同时,实践是学习网络技术的关键,可以通过搭建自己的小型网络环境来进行实验和探索。
9 2
|
5天前
|
JSON JavaScript 前端开发
Jquery常用操作汇总,dom操作,ajax请求
本文汇总了jQuery的一些常用操作,包括DOM元素的选择、添加、移除,表单操作,以及如何使用jQuery发送Ajax请求,涵盖了GET、POST请求和文件上传等常见场景。
|
1月前
|
前端开发
React技术栈-react使用的Ajax请求库用户搜索案例
这篇文章展示了一个React技术栈中使用Ajax请求库(如axios)进行用户搜索的实战案例,包括React组件的结构、状态管理以及如何通过Ajax请求获取并展示GitHub用户数据。
24 7
React技术栈-react使用的Ajax请求库用户搜索案例
|
6天前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用
|
12天前
|
JSON 资源调度 JavaScript
Vue框架中Ajax请求的实现方式:使用axios库或fetch API
选择 `axios`还是 `fetch`取决于项目需求和个人偏好。`axios`提供了更丰富的API和更灵活的错误处理方式,适用于需要复杂请求配置的场景。而 `fetch`作为现代浏览器的原生API,使用起来更为简洁,但在旧浏览器兼容性和某些高级特性上可能略显不足。无论选择哪种方式,它们都能有效地在Vue应用中实现Ajax请求的功能。
18 4
|
25天前
|
JSON API 开发者
Python网络编程新纪元:urllib与requests库,让你的HTTP请求无所不能
【9月更文挑战第9天】随着互联网的发展,网络编程成为现代软件开发的关键部分。Python凭借简洁、易读及强大的特性,在该领域展现出独特魅力。本文介绍了Python标准库中的`urllib`和第三方库`requests`在处理HTTP请求方面的优势。`urllib`虽API底层但功能全面,适用于深入控制HTTP请求;而`requests`则以简洁的API和人性化设计著称,使HTTP请求变得简单高效。两者互补共存,共同推动Python网络编程进入全新纪元,无论初学者还是资深开发者都能从中受益。
36 7
|
28天前
|
存储 JSON Ubuntu
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
下一篇
无影云桌面