Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
Php 如何使用ajax和jquery发送大量数据?_Php_Jquery_Ajax_Csv - Fatal编程技术网

Php 如何使用ajax和jquery发送大量数据?

Php 如何使用ajax和jquery发送大量数据?,php,jquery,ajax,csv,Php,Jquery,Ajax,Csv,我希望通过使用Ajax、php和Jquery发送大量数据,并查看每次将结果添加到div中的数据库中。我尝试了这种方法,但在一万个请求之后,请求速度变慢。我以前从未这样做过。你能帮我选择代码吗?我也试着上传一个csv文件,但当它是一个大文件时,上传时间太长了 $(document).ready(function () { $('#clear').click(function () { $('#title').val(''); $('#date').val(

我希望通过使用Ajax、php和Jquery发送大量数据,并查看每次将结果添加到div中的数据库中。我尝试了这种方法,但在一万个请求之后,请求速度变慢。我以前从未这样做过。你能帮我选择代码吗?我也试着上传一个csv文件,但当它是一个大文件时,上传时间太长了

$(document).ready(function () {

    $('#clear').click(function () {
        $('#title').val('');
        $('#date').val('');
        $('#csvfile').val('');
        $('#result').empty();
        $(".loader").css('display','none');

    });

    $('#csv').on('submit',function (e) {

        e.preventDefault();
        $('.loader').css('display','inline-block');
        var title = $('#title').val();
        var date = $('#date').val();


        if(title.length == 0 ){
            $('#title').css("border","2px solid red");
        }else{
            $('#title').css("border","2px solid #bdc3c7");
        }

        if(date.length == 0 ){
            $('#date').css("border","2px solid red");
        }else{
            $('#date').css("border","2px solid #bdc3c7");
        }

        if($('#csvfile').val() == 0){
            $('#csvfile').css("border","2px solid red");
        }else{
            $('#csvfile').css("border","2px solid #bdc3c7");
            var file = document.getElementById('csvfile').files[0];

        }

        var reader = new FileReader();
        reader.readAsText(file);

        reader.onload = function(event){
            var csv = event.target.result;
            var rows = csv.split('\n');
            let data = [];

            const csvCleanUp = /("|\s"|\s)*/g;
            var headers = rows[0].split(';');

            for(var i=1;i<rows.length;i++){

                var obj = {};
                var currentline=rows[i].split(";");

                for(var j=0;j<headers.length;j++){
                    const header = String(headers[j]).replace(csvCleanUp,'');
                    const currentValue = String(currentline[j]).replace(csvCleanUp,'')
                    obj[header] = currentValue;

                }

                data.push(obj);

            }

            console.log(data);

            let nb = 1;
            let d = 0;
            var myInter = setInterval(function () {
                if(d < data.length){
                    data[d]['title'] = title;
                    data[d]['date'] = date;

                    console.log(data[d]);
                    $.ajax({
                        url: "/admin/add/action/",
                        type: "POST",
                        data: data[d],
                        cache: false,
                        dataType: "json",
                        success: function (resp) {
                            //console.log(resp.msg);
                            if(typeof resp.msg != 'undefined'){
                                $('#result').append('<span class="' + resp.color + '"> n° ' + nb + '<br>' + resp.msg + '</span>');
                            }
                            $('#result').animate({ scrollTop: $('#result')[0].scrollHeight }, 50);

                            nb++;
                        }

                    });

                    $('#clear').click(function () {
                        $('#title').val('');
                        $('#date').val('');
                        $('#csvfile').val('');
                        $('#result').empty();
                        $(".loader").css('display','none');
                        clearInterval(myInter);
                    });
                }


                if(d > data.length){
                    $(".loader").css('display','none');
                    $('#result').append('<span class="success">Fin d\'execution du script</span>');
                    clearInterval(myInter);

                }



                d++;
            },100)


        }



    });
});
$(文档).ready(函数(){
$('#清除')。单击(函数(){
$('#title').val('');
$('日期').val('');
$('csvfile').val('');
$(“#结果”).empty();
$(“.loader”).css('display','none');
});
$('#csv')。关于('submit',函数(e){
e、 预防默认值();
$('.loader').css('display','inline-block');
var title=$('#title').val();
var date=$('#date').val();
如果(title.length==0){
$('#title').css(“边框”,“2倍纯红”);
}否则{
$('#title').css(“边框”,“2px实体”#bdc3c7”);
}
如果(date.length==0){
$('#date').css(“边框”,“2倍纯红”);
}否则{
$('#date').css(“边框”,“2px实体”#bdc3c7”);
}
if($('#csvfile').val()==0){
$('#csvfile').css(“边框”,“2px实心红色”);
}否则{
$('#csvfile').css(“边框”,“2px实体”#bdc3c7”);
var file=document.getElementById('csvfile').files[0];
}
var reader=new FileReader();
reader.readAsText(文件);
reader.onload=函数(事件){
var csv=event.target.result;
var rows=csv.split('\n');
让数据=[];
常量csvCleanUp=/(“|\s”|\s)*/g;
var headers=行[0]。拆分(“;”);
对于(变量i=1;i data.length){
$(“.loader”).css('display','none');
$('#result').append('find'执行du脚本');
间隔时间;
}
d++;
},100)
}
});
});

这是我使用的另一种方法:

$(document).ready(function () {

    $('#clear').click(function () {
        $('#title').val('');
        $('#date').val('');
        $('#csvfile').val('');
        $('#result').empty();
        $(".loader").css('display','none');

    });

    $('#csv').on('submit',function (e) {

        e.preventDefault();
        $('.loader').css('display','inline-block');
        var title = $('#title').val();
        var date = $('#date').val();


        if(title.length == 0 ){
            $('#title').css("border","2px solid red");
        }else{
            $('#title').css("border","2px solid #bdc3c7");
        }

        if(date.length == 0 ){
            $('#date').css("border","2px solid red");
        }else{
            $('#date').css("border","2px solid #bdc3c7");
        }

        if($('#csvfile').val() == 0){
            $('#csvfile').css("border","2px solid red");
        }else{
            $('#csvfile').css("border","2px solid #bdc3c7");
            var file = document.getElementById('csvfile').files[0];

        }

        var data = new FormData(this);

        $.ajax({
            url: "/admin/add/v2/action/",
            type: "POST",
            data: data,
            contentType: false,
            cache: false,
            processData:false,
            success: function (resp) {
               

            }


    });
});

什么是“大”文件。。。计算机不理解大文件,但它们理解诸如位、字节、千字节等度量。。。我们需要更多关于您试图发送到服务器的文件的信息。您的请求变慢的原因可能与服务器正在执行的操作有关,而不是与工作站有关。对此进行优化可能不会产生什么影响。在任何情况下,最快的方法就是上传文件,让服务器处理所有的事情。为什么这对你不起作用?这个文件是一个10个月的文件,我试图用ajax上传它,但上传大约需要3分钟。我已经为大文件上传配置了php.ini