ajax循环调用时,只返回最后一次的值,后台执行最后一次数据

1、

代码:
var i;
for(i=0;i<10;i++){
      ajaxServise(i);
}
 
在for循环中调用ajax方法  补充页面上的数据,这样写是错误的,他不会每执行一次for循环就执行一次ajax方法,而是等for循环结束才去执行ajax方法,所以导致ajax只被执行一次。然而当修改如下:
 
for(i=0;i<10;i++){
      alert("aa");
      ajaxServise(i);
}
与上面不同的是在每次调用的时候都弹出一个窗体  alert("内容随意")  这样就可以在页面正确显示内容 而不是一条内容
 
原因:for循环在JS中是单线程的,他会在for循环结束之后然后执行下一步,一步一步进行实现,而alert切断循环,让程序响应一次,从而再次调用ajax方法,然而在程序当中我们却不能让alert方法出现。

(此方法在前台显示正确,但调用后台数据时仍然为最后一次的值)
解决办法:
var i=0;
var sum=10;
var time;
ajaxServise(i){
       if(i==sum){
            clearTimeout(time);
        }
        i=i+1;
        time = setTimeout(ajaxServise(),10);
        ……………………
        ………………
        …………
        ……
}
 
这里用setTimeout(AJAX())方法进行调用,setTimeout会当此方法执行完毕然后再次执行AJAX()方法,用setTimeout与clearTimeout配合完美解决此问题。
 
PS:setTimeout是伪多线程。

2、是否填写是否同步的字段。

时间: 2024-11-07 04:29:05

ajax循环调用时,只返回最后一次的值,后台执行最后一次数据的相关文章

ASP.NET MVC AJAX调用JsonResult方法并返回自定义错误信息

一.如何用AJAX调用JsonResult方法 比如FuckController中添加有个返回JsonResult类型的方法FuckJson(): public JsonResult FuckJson() { return new JsonResult() { Data = new List<string>() { "fuck", "shit" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }

#获取本机IP地址时排除IPv6类型,只返回IPv4地址的方法

public static string GetLocalIP(){try{string HostName = Dns.GetHostName(); //得到主机名IPHostEntry IpEntry = Dns.GetHostEntry(HostName); for (int i=0; i < IpEntry.AddressList.Length; i++){//从IP地址列表中筛选出IPv4类型的IP地址//AddressFamily.InterNetwork表示此IP为IPv4,//Ad

【转】堆栈跟踪中收到一个UnhandledExceptionFilter调用时,如何查找问题异常堆栈

定义没有异常处理程序来处理引发的异常时调用UnhandledExceptionFilter函数.函数通常将异常传递到捕获并处理它所尝试的 Ntdll.dll 文件. 在某些情况下,在其中存在的进程内存快照,您可以看到一个线程持有的锁点的线程调用UnhandledExceptionFilter函数.在这些情况下,您可以按照本文来标识导致异常的 DLL 中的步骤. 通过使用 Windbg.exe 打开转储文件 下载并安装调试程序.若要下载调试程序,请访问下面的 Microsoft 网站:Micros

通过id查询用户,但是只返回指定的字段

使用hibernate和spring MVC 通过id查询到一个用户,但是只返回指定的字段 方式一: 拼接hql /*** * 通过数据库ID查询用户,但是只返回指定的字段 * @param id * @param propertyNames : 指定的多个成员变量 * @return */ public Object[] getPropertiesById(int id,String[] propertyNames){ if(ValueWidget.isNullOrEmpty(property

Ajax属性和函数以及 返回值之XML格式和文本格式(二)

(一) 客户端请求文本之json格式:接收到json格式,再有js解析(具体先eval成对象,然后.即可) var text = this.responseText; var book = eval('('+ text +')'); document.getElementById('btitle').value = book.title; document.getElementById('bintro').value = book.intro; //其中btitle和bintro是客户端网页中的

WebApi 只返回Json

以下为转载内容,勿笑 第一步: 创建:JsonContentNegotiator.cs public class JsonContentNegotiator : IContentNegotiator { private readonly JsonMediaTypeFormatter _jsonFormatter; public JsonContentNegotiator(JsonMediaTypeFormatter formatter) { _jsonFormatter = formatter;

关于用Hibernate执行sql查询,字符字段类型只返回第一个字节的问题

关于用Hibernate执行sql查询,字符字段类型只返回第一个字节的问题 今天遇到了一个问题,就是在Hibernate中,我用sql去查询mysql数据库里面的user表里面的username字段,但是发现查出来的数据都是只有第一个字,例如:在user表里面的username字段中有一条数据是:"Chen chiwei",查询后返回的结果却是这条数据的第一个字母:"C":于是乎,我查了一下user这张表的设计,发现username这个字段的类型是'char'类型,

Ajax.BeginForm使用时注意的细节

1. 使用Ajax.BeginForm异步式提交数据时一定不要忘了引用 <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script> 具体使用如下代码: <head> <meta name="viewport" content="width=device-width" /> <title>Regist</title>

如何让webapi只返回json格式数据

最近脑子不好用,总记不住事,以前搞过让webapi只返回json格式的数据,今天有人问我又突然想不起了,后来总结一下,备忘一下,大概有下面几种处理方式 1.在WebApiConfig类的Register方法增加一行代码,清除掉xmlformatter. config.Formatters.Remove(config.Formatters.XmlFormatter); 2.在Application_Start中加上一行代码,也可以实现 GlobalConfiguration.Configurati