AJAX请求后页面数据未刷新问题

2023-11-08

这段时间因为做毕设,涉及到AJAX的问题比较多,今天的问题就是一个。中所周知,ajax最大的特点就是局部刷新,可以在不更新整个页面的情况下刷新局部数据,但是,有时候这种优点也会成为一种优点,多说无益,直接上图

首先来看未操作之前的页面

之后我要开始添加了,点击按钮  添加美食  会新增一个菜系,菜名为ddd,价格为88,类型为饮料,为突出重点,我就不贴后台代码了,但是我用我50M的大屌保证后台没有任何毛病

上图

为了增加可信性,我们看一下数据库

但是页面上并没有这条数据

前端JS代码如下:

function addDishes(){
				var newDishesName = $("#add_dishesname").val();
				var newDishesPrice = $("#add_price").val();
				var newDishesType = $("#add_type").val();
				if(newDishesName==null || newDishesName==''){
					alert("菜名不能为空")
				}
				if(newDishesPrice==null || newDishesPrice==''){
					alert("价格不能为空")
				}
				if(newDishesType==null || newDishesType==''){
					alert("类型不能为空")
				}
				$.ajax({
					type:"post",
					url:"<%=basePath%>dishes/addDishes.action",
					async:true,
					data : {
						dishesname : newDishesName,
						price : newDishesPrice,
						dishestype : newDishesType
					},
					success : function(re){
						if(re=="YES"){
							alert("添加成功");
							$("#addModal").modal("hide");
							window.location.reload(true);
						}else{
							alert("添加失败");
						}
					},
					error : function(re,jqXHR){
						alert(re+jqXHR.status)
					}
				});
			}

百度了好久,终于知道问题出在了哪,就是那个

async:true,

的问题,原因如下:

首先我们要知道AJAX同步和异步到底是怎么一回事,按照我的理解,最直观的体现就是在success上。

当我们设置

async : true

时,假设succes : {

f1();

f2();

}

这两个函数会异步执行,意思就是f1会执行自己的代码,但就在f1执行的过程中,f2也会执行,两者或不影响(没有锁的情况下),就想javaSE里的多线程异步执行一样

但是,当async为false时,两个函数会同步执行,即f1先执行,待f1执行完毕之后f2才开始执行。

这样上面的问题就很好解释了。。。

设置async : false

问题解决。。。吃饭

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

后续补充:对于同步异步的理解,可能有点偏差,正确的理解应该是:

fi();

ajax();

f2();

同步的执行顺序:f1(),ajax();f2()

意味着假设f1报错,执行不下去了,那么ajax()和f2都无法执行了

如果是异步,那么将是f1(),ajax(),f2()一起执行,即使有小伙伴阵亡在路上,也不耽误其他的战友们运行

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

AJAX请求后页面数据未刷新问题 的相关文章

  • chatgpt赋能python:Python提取数字:一种简单而强大的方法

    Python提取数字 一种简单而强大的方法 Python是一种功能强大且简单易用的编程语言 它具有许多有用的特性和工具 其中一些可以帮助你完成各种任务 在这个SEO文章中 我们将介绍如何使用Python提取数字 为了使关键信息更加突出 重要
  • redis 作为缓存总结

    redis缓存服务器笔记 redis是一个高性能的key value存储系统 能够作为缓存框架和队列 但是由于他是一个内存内存系统 这些数据还是要存储到数据库中的 作为缓存框架 create updae delete 同时存到redis和数
  • CentOS 安装nginx最简单办法

    我看了很多都挺复杂 然后查了下管网就有安装步骤 参考这个链接 http nginx org en linux packages html RHEL CentOS 第一步 sudo yum install yum utils 如果yum命令遇
  • 【Python人工智能】Python全栈体系(十六)

    人工智能 第四章 分类模型 一 分类业务模型 分类预测模型与回归不同 回归模型是根据已知的输入和输出寻找一个性能最佳的模型 从而通过未知输出的样本得到连续的输出 而分类模型则是需要得到离散的输出 即根据已知样本的所属类别预测未知输出的样本所
  • 解决RedisTemplate 使用 setIfAbsent 做分布式锁出现返回值为 null 的问题

    我们现在较少使用RedisTemplate 提供的setIfAbsent 做分布式锁 解决并发场景问题 一般使用成熟的三方工具Redisssion来解决分布式锁问题 但是有时候还是需要手动通过RedisTemplate 提供的setIfAb
  • 线圈自感的计算公式

    线圈自感等于总的磁通量除以电流 磁路的磁阻R为 l是磁通的总长度 mu 电路材料的相对磁导率 0 mu 0 0 自由空间的磁导率 4
  • Qt中三个窗口基类(QMainWindow , QWidget , QDialoh)的区别

    在平常qt开发中 通常要写自己的窗口类 那么这个窗口类该继承自哪个类呢 下面就来看下三个窗口基类的区别 1 QMainWindow QMainWindow类提供一个带有菜单条 工具条和一个状态条的主应用程序窗口 主窗口通常提供一个大的中央窗
  • 聚类与分类的定义

    1 聚类的概念 有一堆数据 讲这堆数据分成几类称为聚类 举个例子 比如有一堆水果 我们按着不同的特征分为 苹果 橘子 香蕉三类叫做分类 2 分类的概念 在聚类的前提下 拿来一个新水果 我们按着他的特征 把他分到橘子或者香蕉那类中 叫做分类
  • Spring Data JPA 定义实体类关系:一对一

    JPA使用 OneToOne来标注一对一的关系 实体 Dept 部门 实体 User 用户 Dept和 User 是一对一的关系 这里使用关联字段描述JPA的一对一关系 通过关联字段的方式 一个实体通过关联字段关联到另一个实体的主键 通过关
  • SAP事务码MM17物料主数据批量维护

    这个事务码真的很有意思 因为可以看到物料主数据不同层次的内容 为什么这么说呢 进入MM17
  • mysql 修改数据库字段长度限制_修改数据库字段长度问题,非常紧急!大家来帮忙...

    你的位置 问答吧 gt JAVA gt 问题详情 修改数据库字段长度问题 非常紧急 大家来帮忙 我有一个表里有个主键id char 3 第一个问题 能不能把char 3 改为varchar2 10 alter table sys compa
  • Hadoop安装过程与问题解决

    Hadoop安装过程与问题解决 安装环境 CentOS JDK1 8 如何查看系统版本号 如下图 cat etc redhat release 下载Hadoop 包 可以通过在windows下下载 然后通过linux的客户端工具进行上传 这
  • AI测试中的数据收集

    人工智能 通俗来说就是让机器最大程度的接近于人 如人与人之间沟通 识别图像 奔跑 越障等 例如之前被刷屏的波士顿动力机器人 猎豹移动在世界机器人大会展出的研磨咖啡机器人 图像识别是目前人工智能应用的一大类型 不断地收集 调整 完善测试数据来
  • 【深度长文】人脸识别:人脑认知与计算机算法(五部曲)

    来源 本文经作者 Owl of Minerva 授权转载 链接 https zhuanlan zhihu com HicRhodushicsalta 1 初期预测和介绍 现阶段 人脸识别是人工智能领域最炙手可热的话题之一 Google和Fa
  • 用Python画圣诞树

    拿去给自己所思所念之人 import turtle as t as就是取个别名 后续调用的t都是turtle from turtle import import random as r import time n 100 0 speed f
  • uniapp微信小程序使用axios(vue3+axios+ts版)

    版本号 vue 3 2 45 axios 1 4 0 axios miniprogram adapter 0 3 5 安装axios及axios适配器 适配小程序 yarn add axios axios miniprogram adapt
  • CentOS安装docker

    Docker这两年大受追捧 风光无二 Docker是一个轻量级容器技术 类似于虚拟机技术 xen kvm VMware virtualbox Docker是直接运行在当前操作系统 Linux 之上 而不是运行在虚拟机中 但是也实现了虚拟机技
  • vmware workstation pro 14 虚拟机无法开启、黑屏的解决方案汇总

    方案1 卸载鲁大师 重启 方案2 管理员命令行 输入netsh winsock reset 重启 方案3 360安全管家修复LSP 重启 方案4 卸载14 0 安装12 0 手动导入虚拟机 转载于 https www cnblogs com
  • 【待解决】【OpenCV图像处理】1.27 模板匹配(Template Match)

    1 相关理论 直观介绍 介绍 模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域 所以模板匹配首先需要一个模板图像T 给定的子图像 另外需要一个待检测的图像 源图像S 工作方法 在带检测图像上 从左到右 从上向下计算模板图像与重叠子图
  • 解决ModuleNotFoundError: No module named ‘pip‘

    pip install U pip 把pip搞没了 报错 环境路径 Scripts pip script py is not present 这个错误可以通过两行简单的cmd命令行语句进行改正修复 python m ensurepip py

随机推荐

  • GAN(生成对抗网络)Matlab代码详解

    这篇博客主要是对GAN网络的代码进行一个详细的讲解 首先是预定义 clear clc clc是清除当前command区域的命令 表示清空 看着舒服些 而clear用于清空环境变量 两者是不同的 装载数据集 train x load Norm
  • access数据库—— 偏移注入&移位溢注&逐字猜解

    目录 前言 正文 0x01 access数据库介绍 0x02 Access union注入 1 猜表 2 猜字段 查数据 0x02 Access 逐字猜解注入 1 猜表 2 猜字段 3 判断长度 4 查询数据 0x03 Access 偏移注
  • File.renameTo()无效-解决

    File renameTo 在windows下运行正常 可正常移动文件 但在linux下就失败了 代码运行正常 但文件没有移动 这种情况下可以使用Files move代替 import java nio file 重命名文件 new Fil
  • vue-cli3实现mockjs数据模拟

    方法一 安装mockjs npm install mockjs save 在src文件夹先新建mock文件夹用于存放json数据 在vue config js文件中做配置 const mockdata require src mock ba
  • 跟着代码随想录练算法 —— 动态规划(JS)

    跟着代码随想录练算法 动态规划 62 不同路径 https leetcode cn problems unique paths 63 不同路径 II https leetcode cn problems unique paths ii 96
  • SQLSTATE=08S01通讯连接失败

    导致此错误的原因是连接池已经耗尽 所以在连接数据库时要记得关闭连接 防止连接用完
  • php swoole 请求tcp服务的两种方式

    第一种方式 可以实现在代码中调用 task connection stream socket client tcp 127 0 0 1 8721 errno errstr task data array route gt demo test
  • x390拆机 升级内存和硬盘_扩容提速必看!笔记本内存和硬盘如何升级?

    在 想给笔记本清灰升级 先了解下如何拆机吧 一文中我们介绍了笔记本的拆机思路以及注意事项 当你可以自行拆下底盖并看到主板之后 就可以进一步对内存和硬盘这两个存储单元进行替换升级了 内存的升级思路 并不是所有笔记本都能升级内存 很多主打便携的
  • 利用服务器搭建自己的 ngrok服务实现内网穿透

    介绍 ngrok 是一个反向代理 通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道 通过 ngrok 服务我们可以在本地调试微信的接口 调试微信和支付宝的支付回调或者临时搭建一个通道用于在外网访问本地部署的项目 准备 一台
  • idea下实现tomcat热部署(修改class等不重启项目)

    在我们的日常开发过程中 常常会涉及到修改class等文件时 需要重启项目 这不仅耗时 而且还耽误我们的进度 实际上 我们用idea时 可以用tomcat实现热部署而无需重启项目 具体设置如下 此处我用的tomcat版本为tomcat8 5
  • BSC 测试链配置

    全流程步骤 安装 MetaMask 钱包 在 MetaMask 钱包中配置 BSC 测试链 向测试链钱包注入测试 BNB USDT DOGE Remix 编写代码 正式发币 1 安装 MetaMask 钱包 下载地址 https metam
  • 二维数组的各种翻转

    一 二维数组正对角线翻转 int length matrix size 按对角交换数字 for int i 1 i lt length i for int j 0 j lt i j swap matrix i j matrix j i 镜像
  • 字节对齐详解

    字节对齐主要是针对结构体而言的 通常编译器会自动对其成员变量进行对齐 以提高数据存取的效率 字节对齐有两种方式 默认对齐方式 指定对齐方式 默认对齐方式 默认对齐方式内存分配满足以下三个条件 结构体第一个成员的地址和结构体的首地址相同 结构
  • 2021年第四届清洁能源与智能电网国际会议(CCESG 2021)EI检索

    2021年第四届清洁能源与智能电网国际会议 CCESG 2021 重要信息 会议网址 www ccesg org 会议时间 2021年9月3 5日 召开地点 匈牙利布达佩斯 截稿时间 2021年8月20日 录用通知 投稿后2周内 收录检索
  • IDEA 关闭/开启引用提示Usages

    版本高一些的IDEA都会有这样变量或者方法都会有这个Usages提示 它会提示你在哪被使用了 个人觉得还是挺好用的 比如下图 通过点击可以看到在哪被使用 包括一些接口 被谁实现 然后今天我发现没有这个使用提示了 正好听到有人反馈说这个提示不
  • Flutter iOS 权限申请的采坑之旅

    Flutter项目集成了权限请求框架 permission handler 在Android端的权限请求没什么问题 iOS端安装之后 跳转到应用设置后找不到相应的权限 权限声明 应用设置页面 我还以为跟Android端的权限一样 声明了这边
  • MongoDB数据库在Linux 上的下载安装

    MongoDB下载包获取 mongoDB官网下载地址 选择不同的版本 系统以及安装包类型 本次教程选择以下版本 下载后文件类型为tgz文件 wget 直接下载 wget https fastdl mongodb org linux mong
  • SQLserver数据库中的基本数据类型

    整数类 1 bigint 完全等于Java中的long 2 int 完全等于java中的int 3 smallint 完全等于Java中的short 4 tinyint 它相当于Java中的byte类型 但表示的数值范围不同 byte 12
  • 何利用streamlit快速搭建一个web应用并部署到heroku服务器上

    如何利用streamlit快速搭建一个web应用并部署到heroku服务器上 streamlit入门 所有的都一样安装包 尝试包的示例 如何快速搭建你的webApp 1 首先在本地创建一个 py文件 例如我的app py 2设置题目 3设置
  • AJAX请求后页面数据未刷新问题

    这段时间因为做毕设 涉及到AJAX的问题比较多 今天的问题就是一个 中所周知 ajax最大的特点就是局部刷新 可以在不更新整个页面的情况下刷新局部数据 但是 有时候这种优点也会成为一种优点 多说无益 直接上图 首先来看未操作之前的页面 之后