如何通过AJAX使用jQuery和PHP处理海量数据?

时间:2014-07-09 15:36:00

标签: javascript php jquery ajax json

我通过jquery的$ .ajax方法将一个巨大的javascript数组传递给php。 Content-Type是JSON,我将数据发送为RAW。

在PHP中,我使用file_get_contents获取数据(' php://输入')。

一切都运行得很好,但是在巨大的javascript数组上,例如2.5MB,php只接收小变量而且巨大的变量被剥离了。在使用jquery发送数据之前,我执行JSON.stringify以将数据作为JSON发送。 PHP仍将删除此JSON字符串中的所有巨大变量,如果我得到" php:// input"只剩下小变量.......

在php.ini中我已经提出了max_post_size和其他东西,但没有什么可行的......

有人知道我该如何处理这个问题吗?

THX!

1 个答案:

答案 0 :(得分:0)

可能不是最好的想法,但你可以分割你的数据,像(未测试,可能需要一些更正):

var json = HUGEJSON;
while (json.length != 0) {
   var toSend = json.length >= 4096 ? json.substr(0, 4096) : json;
   $.ajax({
       url: 'server',
       method:'post',
       type:'json',
       data: toSend
   });
   json = json.length >= 4096? json.substr(4096, json.length-4096) : json;
}

然后找到一种方法来重建数据服务器端,直到所有数据都已发送完毕。