美文网首页
$.ajax 取消上次接口

$.ajax 取消上次接口

作者: 成神之路_be73 | 来源:发表于2019-12-31 16:57 被阅读0次

开发中, 一定会遇到tab数据切换,一般情况下, 我们只需要在页面上渲染最后一次请求的返回数据。 但是因为js是异步操作, 切换以后,同样的接口, 你不确定那个接口的数据先返回来, 就可能会出现了一个问题: 当前tab显示上个接口的数据信息, 这个时候,就需要解决这个bug

正常情况下,$.ajax 有一个方法, 可以直接取消当前接口

.abort();

  let requestName = $.ajax({
     method: 'get',
     url: '/jiekou',
     cache: false,
     timeout: 10000,
     data: {
       a: 1
     }
  })
  requestName.abort();
但是在实际工作中, 为避免代码冗余, 所以我们都会简化代码,封装请求接口, 也就是说多个接口走的一个方法, 这个时候,我们可以写成对象模式
  let obj = {};
  function cencelObjKeys(requestName) {
    if (requestName && obj[requestName] ) {
      obj[requestName].abort();
      delete obj[requestName];
    }
  }
  function setObjKeys(requestName, val) {
    if (requestName) {
      obj[requestName] = val;
    }
  }
  function ajax (requestName, method, url , timeout, data) {
     cencelObjKeys(requestName);
     let ajaxName = $.ajax({
        method: method,
        url: url,
        cache: false,
        timeout:  timeout,
        data: data
      })
      setObjKeys(requestName, ajaxName);
  }

由此, 解决了切换tab页可能会渲染上个请求返回数据的bug,
转载请标注出处, 觉得不错请点赞👍👍👍

相关文章

  • $.ajax 取消上次接口

    开发中, 一定会遇到tab数据切换,一般情况下, 我们只需要在页面上渲染最后一次请求的返回数据。 但是因为js是异...

  • 2016-08-18 短信接口、ajax请求

    短信接口、ajax请求 ajax请求 $.ajax()方法详解 url type timeout: async: ...

  • ajax

    Ajax 1 - 请求纯文本 Ajax 2 - 请求JSON数据 Ajax 3 - 请求Github接口 Ajax...

  • Vue数据请求

    1 - 前端接口调用方式 原生ajax 基于jQuery的ajax fetch axios 2 - 接口调用-fe...

  • ajax请求接口参数

    如何使用ajax请求数据: // 请求接口数据$.ajax({ url: 'http://localhost/...

  • 使用爬虫知识点(ajax,cookie,代理ip)

    爬取ajax网页方法 1,直接分析ajax调用的接口,然后通过代码请求这个接口。 2,使用selenium+chr...

  • ajax的取消

    读axios的api是发现axios提供了ajax取消的机制。

  • 取消ajax请求

    取消异步请求 原生XHR 调用调用XHR对象的.abort()方法 jquery ajax axios 特点可以同...

  • SpringMVC之AJAX

    九、AJAX 目录:简介、伪造Ajax、jQuery.ajax、注册提示效果、获取Baidu接口 1.简介 AJA...

  • AJAX(数据库)

    Ajax:接口杂 多 难vuejs jq

网友评论

      本文标题:$.ajax 取消上次接口

      本文链接:https://www.haomeiwen.com/subject/ttvmoctx.html