JQuery AJAX POST调用需要很长时间
我提出了一个巨大的数据请求后,但发送请求需要很长时间。我说只发送是因为我有以下代码:JQuery AJAX POST调用需要很长时间,jquery,ajax,post,Jquery,Ajax,Post,我提出了一个巨大的数据请求后,但发送请求需要很长时间。我说只发送是因为我有以下代码: console.time('post load'); var req= new Array; req = { 'data' : $('input[name="data"]', $('#id_contain')) .serialize() }; var request = $.ajax({
console.time('post load');
var req= new Array;
req = {
'data' : $('input[name="data"]', $('#id_contain')) .serialize()
};
var request = $.ajax({
url : '/url',
type : "POST",
data : req,
cache : false,
timeout: 10000,
dataType : 'json',
async: false,
success : function(response){
alert('yes');
},
error : function(jqXHR, textStatus,
errorThrown) {
// if (debug_js) {
console.log(jqXHR);
// }
}
});
console.timeEnd('post load');
console.log('data');
因此,根据这段代码,我的请求(后加载)需要25秒,我的JAX请求超时10秒。所以我认为只有jquery让请求花费时间?
但是,如果我用一个简单的字符串来更改数据,则需要0.01秒。。。所以这真的是由于我的巨大数据吗?正如Niels提到的,这可能是后端(服务器端)的问题。我建议您首先尝试注释服务器端的任何处理逻辑,并立即返回成功条件。 如果请求仍然需要很长时间,那么它肯定是巨大的数据,这是罪魁祸首,你可能不得不考虑某种客户端数据压缩。
对此,我们对各种选项进行了一些分析。也有同样的问题。在一个用例中,我必须发送3个JSON对象,总共约20MB;虽然只发送到localhost,但需要大约20秒,或者浏览器超时(Firefox、Chrome) 经过多次尝试和出错(也尝试注释所有服务器逻辑,但没有加快过程),我终于找到了一个解决方案:
在这些更改之后,jquery的http post创建从20秒下降到1秒以下。您可能是如何处理后端数据的?你是怎么做到的?你的数据有多大?多少字节?@pete不知道有多少字节,但它就像一个包含2401727个字符的字符串。@Niels如果是php,我想ajax jquery的timout将被触发,如果我在回调php开始时返回,则是相同的。当使用异步时,我处理$\u post:false javascript执行将停止,直到您的post返回,