Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 并非所有循环都已处理,13200个循环中只有5655个循环_Javascript_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript 并非所有循环都已处理,13200个循环中只有5655个循环

Javascript 并非所有循环都已处理,13200个循环中只有5655个循环,javascript,jquery,mysql,ajax,Javascript,Jquery,Mysql,Ajax,我有两个javascript循环,一个嵌套在另一个中,对服务器端进行AJAX调用。循环生成一对数字(latlng坐标),然后通过.getJSON()传递给服务器,并将其插入MySQL表中 问题:脚本运行约6分钟,总共有13200个AJAX调用。在chrome的webdeveloper工具中,它说5656/13646请求536.20KB/2.15MB。当我检查表格中插入的条目时,我只看到5655行!其他人怎么了 JS代码 for(var i = 0; i < 110; i++) {

我有两个javascript循环,一个嵌套在另一个中,对服务器端进行AJAX调用。循环生成一对数字(latlng坐标),然后通过
.getJSON()
传递给服务器,并将其插入MySQL表中

问题:脚本运行约6分钟,总共有13200个AJAX调用。在chrome的webdeveloper工具中,它说
5656/13646请求536.20KB/2.15MB
。当我检查表格中插入的条目时,我只看到5655行!其他人怎么了

JS代码

for(var i = 0; i < 110; i++) {
    var lat_current = lat_start + lat_increment * i;

    for(var j = 0; j < 120; j++) {

        // Do some calculations
        // More code here...

        // Insert LatLng into database
        $.getJSON(base_url + 'insert_latlng_to_crawl', 
            {
                lat: lat_current,
                lng: lng_current
            }, 
            function(json){
            });

    }

}   
(变量i=0;i<110;i++)的
{
var lat_电流=lat_启动+lat_增量*i;
对于(var j=0;j<120;j++){
//做一些计算
//更多代码在这里。。。
//将LatLng插入数据库
$.getJSON(基本url+“插入到爬网”,
{
lat:lat_电流,
液化天然气:液化天然气单位电流
}, 
函数(json){
});
}
}   

它可能正在计算返回值

5655/13200

5655是您发送的内容,/后面的数字是总数(包括返回值,是您第一个数字的2倍)。发送和接收json值。我在假设某种成功状态


还有一个问题是,在表中插入了多少重复值?您的表上有唯一的键吗?

您应该创建一个javascript对象,然后将其传递给服务器并在服务器端进行处理

 var coords=Array();//Create an array to store the calculations
 for(var i = 0; i < 110; i++) {
    var lat_current = lat_start + lat_increment * i;

    for(var j = 0; j < 120; j++) {

    // Do some calculations
    // More code here...

    // append the results to the array
    coords.push({lat: lat_current, lng: lng_current});


}

//Make the ajax call to the server, sending the completed Array JSON encoded
coords= JSON.stringify(coords);
$.ajax({
  type: 'POST',//you should send big chunks of data via POST
  url: url,
  data: coords,
  success: success,
  dataType: JSON
});
var coords=Array()//创建一个数组来存储计算结果
对于(变量i=0;i<110;i++){
var lat_电流=lat_启动+lat_增量*i;
对于(var j=0;j<120;j++){
//做一些计算
//更多代码在这里。。。
//将结果附加到数组中
坐标推送({lat:lat_电流,lng:lng_电流});
}
//对服务器进行ajax调用,发送完整的JSON编码数组
coords=JSON.stringify(coords);
$.ajax({
键入:“POST',//您应该通过POST发送大块数据
url:url,
数据来源:coords,
成功:成功,
数据类型:JSON
});

您确定不是服务器死机了吗?我会检查少数ajax请求的响应。您的其余请求可能位于队列中。ajax请求是异步的,或非阻塞的,因此您的循环将尽可能快地执行,而实际的请求堆积在后台。没有添加新行等待10分钟后返回桌面。我如何判断是Chrome浏览器限制了AJAX调用的数量还是服务器拒绝了?最好是在计算完成之前保留客户端的所有内容,然后发出一个大http请求,然后发出13200个单独请求。您的内存可能超过5MBHTTP头与您的方式相同,如果您有cookie,您可以在不使用任何数据的情况下传输大约50MB的数据。表中有3列,第一列是唯一的键列和自动递增的
id
列。服务器端没有重复检查。这是否意味着浏览器只向服务器发送5655个请求与上面应该发送的13200循环不同,这意味着Chrome限制了发送的请求数量??我认为第二个数字是总流量(发送和接收的请求)。您可以打印到屏幕或文件计数器以查看实际发出了多少请求吗?我的意思是jSON将返回一个对象(或成功)您的ajax请求正确吗?我应该将计数器放在
.getJSON()
的回调函数中还是放在它之外?让我们来看看