jquery ajax请求时如果页面卡主 多次发出相同请求 如何处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery ajax请求时如果页面卡主 多次发出相同请求 如何处理相关的知识,希望对你有一定的参考价值。
假如 保存一条数据
当页面点击保存时,由于电脑还在执行其他线程,导致页面卡主,这时多次点击保存,发出ajax请求后,action端在处理的时候,先是判断名称是否存在,如果存在则返回页面error信息,如果不存在则保存到数据库
现在由于页面卡主,多次点击保存后,等页面有响应时,action端接到多次清楚,发现 保存了多个名称相同的记录,请问有什么好的办法解决这种问题没。
我自己想过 可以在 判断名称是否存在 和 保存 这段代码 加上同步,不知道还有没有更好的办法
不存在遮罩前就点击第二次按钮的担忧,因为js也是要顺序执行的,没有执行完代码你操作不了 参考技术B 可以在页面加一个请求等待提示图层(默认隐藏),点击页面保存按钮时显示图层,ajax请求完成后的回调函数里再隐藏图层。这样就可以避免用户不停的发出ajax请求了。希望对你有所帮助! 参考技术C 加个标志位flag 初始化0 点保存以后就设置成1 保存的时候判断是否为1 是1的话表示已经保存过追问
有个问题就是点击保存后 有返回结果才设置为1吧,但是如果还没有返回结果,可是已经发了多个请求出去了
追答不需要返回 只要请求就设置1
本回答被提问者和网友采纳 参考技术D 加一个验证码,在服务器端判断验证码后就过期 第5个回答 2013-08-06 点击以后让界面处于等待状态.直到完成.不知你试过没有追问你说的是遮罩吧,我也想过
由于我处理的线程太多,页面卡着不动,遮罩还没起作用的时候,会不会就已经发出了多个请求呢
Ajax 调用失败。使用 Jquery .ajax 函数发出简单的请求
【中文标题】Ajax 调用失败。使用 Jquery .ajax 函数发出简单的请求【英文标题】:Ajax call failing. Using Jquery .ajax function to make simple request 【发布时间】:2011-08-24 14:06:28 【问题描述】:这里是调用ajax函数的jquery:
function sendAjax(type, succ) //where succ is the success callback
if (type=="")
$("#txtResp").empty();
return;
if(succ === undefined) succ = null;
switch(type)
case 'run':
$.ajax(type:"GET",
url: "start_mess.php",
data: "q="+type,
success: succ
);
break;
这里是index.html页面内容:
function initialLoad()
sendAjax('run')
$("#txtResp").html(responseText);
initialLoad();
这是 PHP 页面:
echo $_GET['q'];
$q = $_GET['q'];
知道为什么这不起作用吗?谢谢!
泰勒
【问题讨论】:
好吧,一方面,sendAjax('run')
后面需要一个分号。我也看不到 responseText
的定义位置。
你知道 JS::onReady 技术吗? api.jquery.com/ready
【参考方案1】:
你没有传递回调,所以没有什么可以调用成功。
试试sendAjax('run', function(data) alert(data) );
。
【讨论】:
简单明了的描述。正是像我这样的初学者所需要的。非常感谢 @Taylor 不用担心,编码愉快 :) 抱歉我的回复,都是问题。我还没有评论权限:p。以上是关于jquery ajax请求时如果页面卡主 多次发出相同请求 如何处理的主要内容,如果未能解决你的问题,请参考以下文章
ajax系列之用jQuery的ajax方法向服务器发出get和post请求
如果 Ajax 在预测时间后成功,则 jQuery 刷新/重新加载页面
在 DataTable Delete 操作中多次发送 Ajax 请求 - ASP.NET、JQuery、Ajax