ajax可以做哪些事,Ajax

2023-10-27

1.ajax 是什么?有什么作用?

ajax主要是实现页面和web服务器之间数据的异步传输。

不采用ajax的页面,当用户在页面发起请求时,就要进行整个页面的刷新,刷新快慢取决于服务器的处理快慢。在这个过程中用户必须得等待,不能进行其他操作;采用ajax的页面,可以实现页面的局部更新,并且发起请求后,用户还可以进行页面上的其他操作;

2.前后端开发联调需要注意哪些事情?后端接口完成前如何 mock 数据?

需要注意的事情:

约定数据:确定需要传输的数据及数据类型

约定接口:确定接口名称及请求和响应的格式,请求的参数名称、响应的数据格式;

如何mock数据:

方法一:使用xampp等工具,搭建本地web服务器,编写php脚本提供数据

方法二:使用server-mock模拟数据

3.点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?

使用button的disabled属性,配合setTimeout 0,使在数据到来之前按钮都不能被点击

ele.addEventListener('click',function(){

this.disabled=true;

ajax();

setTimeout(this.disabled=false,0);

});

设置一个开关,初始状态是false,发生点击事件后,开关状态置为true,直到ajax请求完成后,开关状态才会被重新置为false。

var lock = false;

ele.addEventListener('click',function(){

if(!lock){

lock = true;

ajax();

lock = false;

}

});

代码

1.封装一个 ajax 函数,能通过如下方式调用

function ajax(opts) {

// 做参数兼容

opts.success = opts.success || function(){};

opts.error = opts.error || function(){};

opts.type = opts.type || 'get';

opts.dataType = opts.dataType || 'json';

opts.data = opts.data || {};

var dataStr = '';

for (var key in opts.data) {

dataStr += key + '=' + opts.data[key] + '&';

}

dataStr = dataStr.substr(0, dataStr.length - 1);

var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState === 4) {

if(xmlhttp.status === 200){

if(opts.dataType === 'text'){

opts.success(xmlhttp.responseText);

}

if(opts.dataType === 'json'){

var json = JSON.parse(xmlhttp.responseText);

opts.success(json);

}

}else{

opts.error();

}

}

};

if (opts.type.toLowerCase() === 'post') {

xmlhttp.open(opts.type, opts.url, true);

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xmlhttp.send(dataStr);

}

if (opts.type.toLowerCase() === 'get') {

xmlhttp.open(opts.type, opts.url + '?' + dataStr, true);

xmlhttp.send();

}

}

调用方式:

document.querySelector('#btn').addEventListener('click', function(){

ajax({ url: 'getData.php', //接口地址

type: 'get', // 类型,post 或者 get,

data: {

username: 'xiaoming',

password: 'abcd1234'

},

success: function(ret){

console.log(ret); // {status: 0}

},

error: function(){

console.log('出错了')

}

})

});

代码

1.实现如下加载更多的功能

本地测试通过GitHub上代码地址

2.实现注册表单验证功能

xampp上测试通过GitHub上代码地址

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

ajax可以做哪些事,Ajax 的相关文章

  • 【无人机 学习笔记 2】无人机导航制导与控制

    梳理完控制以及飞行力学的一些基本原理之后 就该正式进入无人机导航 制导与控制的讨论了 导航制导与控制是无人机系统中最复杂的分系统 其功能可以有多种划分方法 本文中 我们就以下面框图所示的划分方法为例 对无人机导航制导与控制系统的基本原理和常
  • numpy 查找元素位置 numpy.where

    numpy where condition x y 详细用法请大家详见官方文档 这里举几个例子 import numpy as np a np array 1 2 3 4 5 print np where a lt 3 查找小于3的元素的位
  • Python学习笔记(CSDN)- 1 - Python简介

    按照CSDN上的课程进行学习 Python简介 预备知识 CSDNPython入门技能树 先是附上这门课的思维导图 目录 1 Python定义 2 Python发展史 2 1 Python的发展 2 2 Python的版本更新 2 3 Py
  • JavaScript基础:Iterator概念及用法

    一 由来及意义 Javascript中表示 集合 的数据结构 主要是 Array Object Map Set 这四种数据集合 除此之外 它们相互之间还可以组合使用 例如Array的成员是Map Map的成员是Object等 因此Javas
  • 一分钟学会gitee上传文件到仓库

    在网上Gitee准备 1 1 注册登录 gitee 1 2 在gitee上创建仓库 点击gitee头像旁边的 选择 新建仓库 1 3 开始新建 然后点击 创建 仓库名称 最好都用英文 这里方便讲解就不勾选后面的内容了 接着直接点击 创建 就
  • Python迭代器

    迭代器是在Python2 2中被加入的 它为类序列对象提供了一个类序列的接口 有了迭代器可以迭代一个不是序列的对象 因为它表现出了序列的行为 关于Python中的迭代器 有几个比较容易混淆的概念 可迭代对象 iterable 迭代器 ite
  • 《服务器无状态设计:为什么&如何实现无状态API?》

    博主猫头虎 带您 Go to New World 博客首页 猫头虎的博客 面试题大全专栏 文章图文并茂 生动形象 简单易学 欢迎大家来踩踩 IDEA开发秘籍专栏 学会IDEA常用操作 工作效率翻倍 100天精通Golang 基础入门篇 学会
  • python3 多线程_Python3多线程及线程池实现教程

    一 说明 多线程这个东西 感觉一直以来都是用一次就要学一次 今天需要将之前写的脚本改成线程池的形式又学习了一轮 为了以后方便在这直接记下来 二 多线程实现 2 1 多线程的基本实现 importthreadingimporttimeimpo
  • 编写程序,根据用户输入的两位数,反向显示出该数中的数字。例如,用户输入48,那么程序输出84。(C语言)

    include
  • Linux开机满进度条卡死问题

    Linux开机满进度条卡死问题 此问题意外发生 原本好好的 再次开机就发现启动时进度条很慢 最后满条卡住 但ssh方式连接还能进去 也就是开机了 但linux界面卡住了 页面如下 但我们使用xshell进行ssh链接还是可以用的 但进度条卡
  • Ubuntu---pycharm卸载

    Ubuntu卸载pycharm 1 在 Linux 上卸载 snap 包 在商店中直接下载 专业版 sudo snap remove pycharm professional 社区版 sudo snap remove pycharm com
  • tomcat能作为网站的服务器不,tomcat的作用是什么_网站服务器运行维护,tomcat

    Linux 如何查看root密码 网站服务器运行维护 Linux不能查看root密码 因为root密码都是密文存储的 而密码设计的一个目标就是反推解密出来的可能性尽量小 如果需要修改密码 可以通过进入单用户模式下 将密码进行修改 修改完成后
  • SlideLive:提供小清新风格PPT模板下载

    简介 在学习和工作中 有时需要制作PPT 本文主要介绍如何从SlideLive平台下载小清新风格PPT模板 其中 SlideLive是一款PPT在线播放和分享的网站 该网站已收录大量的PPT模板 包括各种风格PPT模板和PPT图表 下载地址
  • 4款不错的UI设计软件推荐

    俗话说 如果工人想做好工作 他们必须首先磨利他们的工具 高质量的UI设计软件将使设计事半功倍 近年来 UI设计软件的逐渐多样化 让一些需要使用UI设计软件的小伙伴不知道如何选择 我整理了四款优秀的免费UI设计软件 别错过了 1 即时设计 即
  • 在子组件中使用Echarts图表无法刷新显示的问题(解决:子组件刷新)

    场景问题 在项目中 子组件中使用了Echarts的图表 图表的数据需要从父组件传入Id来进行查询 墒情仪与气象站相同的结构 当切换设备时 图表无法回显 父子组件传值正常 解决心路历程 1 我将两种设备传值的Id分开传递 处理无果 2 给子组
  • Linux下操作Docker(四):导入导出

    docker镜像的导出和导入 显示当前docker中的镜像 docker images 镜像列表如下 REPOSITORY TAG IMAGE ID CREATED SIZE pointsift latest 90b2ef439b40 2
  • java循环判断的使用

    程序的结构 一般来说程序的结构包含有下面三种 1 顺序结构 2 选择结构 3 循环结构 顺序结构 程序至上而下逐行执行 一条语句执行完之后继续执行下一条语句一直到程序的末尾 选择结构 是根据条件的成立与否 再决定要执行哪些语句的一种结构 循
  • 原生js实现简单智能关键词搜索功能

    现在很多网站都有智能搜索功能 它能根据用户的输入自动提示出需要补全的数据 方便用户的查询 下面我们用JavaScript来简单实现它 html部分 div div
  • STM32学习笔记3:KEIL5中使用ST-Link烧录调试STM32芯片的步骤

    一 开发板连接ST LINK ST LINK连接电脑 操作细节点击这里 二 配置debug选项 点击魔术棒 debug use 项选择 ST Link Debugger 再点击 Setting 这边会显示设备信息 如果显示没有设备 需要检查

随机推荐

  • 数字电路设计之OpenRISC(一)

    ARM PowerPC等商用IP核授权费价格较高 所以开源处理器越来越受到大家的关注 开源处理器比如OpenRISC NIOS II LEON2等 这里我会介绍OpenRISC的优点 一 指令集可扩展 二 添加专用的硬件协处理单元 一般来说
  • Kettle(一) 下载及环境部署

    1 kettle下载地址 kettle资源 https download csdn net download kingo0 87360222 JDK资源 LinuxJDK1 8安装包 jdk1 8安装包 Java文档类资源 CSDN下载 2
  • oracle 触发器 for each row 理解

    看到了触发器 中有个 for each row 不是很明白就查了查资料 因为只是简单研究 就先写总结一下 触发器的一般语法 CREATE OR REPLACE TIGGER 触发器名 触发时间 触发事件 ON 表名 FOR EACH ROW
  • AndroidStudio中Module创建及项目变Module导入其它项目步骤

    AndroidStudio中Module创建及项目变Module导入其它项目步骤记录 1 创建module 2 添加依赖 3 将已有项目变为module导入到其他项目中 将已有项目更改 将旧项目作为module导入 4 遇到的一些问题 总结
  • Ceres Solver安装及bug解决

    Ceres Solver安装与入门使用 安装教程 http www ceres solver org installation html 点击下载最新的稳定版 解压 编译 测试 安装 1 Linux系统下安装步骤 安装依赖 CMake su
  • 拯救pandas计划(19)——使用自定义方法计算两列的相似度

    拯救pandas计划 19 使用自定义方法计算两列的相似度 最近发现周围的很多小伙伴们都不太乐意使用pandas 转而投向其他的数据操作库 身为一个数据工作者 基本上是张口pandas 闭口pandas了 故而写下此系列以让更多的小伙伴们爱
  • GLES3.0中文API-glBeginQuery

    名称 glBeginQuery 划定查询对象的边界 C规格 void glBeginQuery GLenum target GLuint id void glEndQuery GLenum target 参数 glBeginQuery ta
  • react中“create-react-app”不是内部或者外部命令也不是可运行程序的解决办法

    换个命令创建项目 npm init react app my app 可创建 npm run start 启动
  • antd-design/pro-table组件说明(官方readme)

    ant design pro table Antd官网没找到Pro Table的相关说明文档 下面是从依赖包里捞出来的readme Demo codesandbox API pro table 在 antd 的 table 上进行了一层封装
  • 洛谷 贪心 部分背包 线段覆盖 排队接水 python

    P2240 深基12 例1 部分背包问题 数据结构选择 python没有结构体 选用二维数组 物品价值 重量 存储单个物品方便排序 根据贪心策略 首先计算性价比 然后按性价比由大到小排序 只要没有达到背包承载的重量 就装入 python n
  • 第八章 综合案例——构建DVD租赁商店数据仓库①

    8 3 2 加载日期数据至日期维度表 1 打开Kettle工具 创建转换 使用Kettle工具 创建一个转换load dim date 并添加生成记录控件 增加序列控件 JavaScript代码控件 表输出控件以及Hop跳连接线 2 配置
  • 用作者提供的net1->net2生成MTCNN的训练样本(positive,negative,part,landmark)

    本代码基于作者提供的python版本代码修改 参考 https github com DuinoDu mtcnn blob master demo py 作者提供 https github com dlunion mtcnn blob ma
  • C++中pair使用详细说明

    一 pair 的介绍 pair 是一个很实用的 小玩意 当想要将两个元素绑在一起作为一个合成元素 又不想要因此定义结构体时 使用 pair 可以很方便地作为一个代替品 也就是说 pair 实际上可以看作一个内部有两个元素的结构体 且这两个元
  • Python轻量级Web框架Flask(3)——Flask路由参数/Flask请求与响应/重定项/异常处理

    1 Flask路由参数和methods参数 路由其实就是一个路径 就是 a route template test 中的 template test 每一个路由对应的是唯一的一个功能 如果要实现很多个功能 就需要很多个路由 methods参
  • #992: invalid macro definition: USE_STDPERIPH_DRIVER.STM32F10X_MD问题解决方法

    现像 在进行STM32进行建立工程过程中 进行编译后出现如下报错 no source Error command line 992 invalid macro definition USE STDPERIPH DRIVER STM32F10
  • 我的NVIDA开发者之旅-在GPU上运行Pytorch代码

    我的NVIDIA开发者之旅 征文活动进行中 目录 介绍 查看GPU信息 Pytorch指定显卡 Demo 参考 介绍 Pytorch与CUDA的安装可以参照我之前写的深度学习环境搭建 Windows10安装cuDNN Pytorch能够使用
  • Linux网络基础5(链路层---以太网)

    链路层 负责相邻设备之间的数据传输 以太网协议 ethernet 协议格式 48位源端 对端mac地址 识别指定相邻设备 mac地址 uint8 t mac 6 网卡的物理硬件地址 在出厂时设定 16位数据类型 用于数据分用时上层解析协议的
  • Kettle 将文本文件转为excel输出

    关注微信公共号 小程在线 关注CSDN博客 程志伟的博客 一 将文本文件转为excel输出 1 选择打开 新建转换 2 点击文本文件输入 3 点击浏览 找到我们需要的文本文件 4 选择好之后点击增加 5 显示文件的具体路径 6 点击 显示文
  • html中img标签特性及块元特性

    img特性 1 img不会独占一行 一行可以放多个 2 img是行内元素 但具有行内块属性 可以自由设置宽高 这种内容可替换的元素 虽然属于 inline 但又能设置height width等值 块元素特性 1 每一个块级元素都是独占一行
  • ajax可以做哪些事,Ajax

    1 ajax 是什么 有什么作用 ajax主要是实现页面和web服务器之间数据的异步传输 不采用ajax的页面 当用户在页面发起请求时 就要进行整个页面的刷新 刷新快慢取决于服务器的处理快慢 在这个过程中用户必须得等待 不能进行其他操作 采