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