首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX响应大小限制

问AJAX响应大小限制
EN

Stack Overflow用户
提问于 2012-04-15 19:57:38
回答 1查看 11.3K关注 0票数 9

我使用AJAX异步调用PHP脚本,该脚本返回JSON对象的大型序列化数组(约75 to或80k字符)。每次我尝试并返回它时,它会达到3000字符的限制。服务器上的任何位置或jQuery的ajax实现中是否都有最大大小设置?

编辑: 3'000限制是Chrome限制,FF有10'000字符限制,Safari没有限制。我猜想,除了更改代码以拆分/减少返回数据之外,对此没有任何解决办法。

EN

回答 1

Stack Overflow用户

发布于 2013-10-01 02:21:01

您可以拆分您的JSON,并分步使用$.ajax

我为你树立了一个榜样

Html侧:

代码语言:javascript
复制
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
    $(document).ready(function() {

        window.result_json = {};

       $.get("x.php?part=size",function(data){
          var count = data;
          for (var i = 0; i <= count; i++) {
            $.ajax({
              dataType: "json",
              url: "x.php",
              async: false,
              data: "part="+i,
              success: function(data){
                $.extend(window.result_json,data);
              }
            });
          };
          console.log(window.result_json);
       });
    });
</script>
</head>
<body>

</body>
</html>

PHP (文件名为x.php):

代码语言:javascript
复制
<?php
if(isset($_GET['part'])){

    function send_part_of_array($array,$part,$moo){
        echo json_encode(array_slice($array, $part * $moo,$moo,true),JSON_FORCE_OBJECT);
    }
    $max_of_one = 3;
    $a = array("a","b","c","d","e","f","g","h","i","j");

    if($_GET['part'] == 'size'){
        echo round(count($a) / $max_of_one);
    }else{
        send_part_of_array($a,$_GET['part'],$max_of_one);
    }

}
?>

首先用$.get (part=size)检查切片数。

其次,使用$.ajax(part=(Int)部件号),在for循环中逐个获取JSON的各个部分。

最后,使用$.extend in for循环标记新的在window.result_json中获取JSON和旧JSON元素

注意:$max_of_one 变量确定要发布.的片数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10165543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档