我使用大量数据发出请求POST,但请求的SEND需要很长时间。我说只发送因为我有这个代码:
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秒,我的超时onajax请求10秒。所以我认为只有jquery制作请求需要时间? 但是,如果我用一个简单的字符串更改数据大量的数据需要0.01秒...所以这真的是由于我庞大的数据?
答案 0 :(得分:4)
有完全相同的问题。在一个用例中,我必须发送3个JSON对象,总共~20MB;虽然只发送到localhost大约需要20秒或浏览器超时(Firefox,Chrome)。
经过大量尝试和错误(也尝试评论出所有服务器逻辑,但没有加快过程)我终于找到了解决方案:
3.步骤取决于您运行的服务器类型。对我来说,它是一个节点快速服务器,带有用于json内容的body-parser模块。
在这些更改之后,jquery的http-post创建从20秒下降到1秒以下。
答案 1 :(得分:1)
正如Niels所说,它可能是一个后端(服务器端)问题。我建议你先尝试在服务器端注释掉任何处理逻辑,然后立即返回你的成功条件。 如果请求仍然需要很长时间,那么肯定是巨大的数据是罪魁祸首,您可能不得不考虑某种客户端数据压缩。 对于执行此操作的各种选项,已进行了一些分析here。