2012-04-15 17 views
5

मैं AJAX का उपयोग एसिंक्रोनिस से एक PHP स्क्रिप्ट को कॉल करने के लिए कर रहा हूं जो JSON ऑब्जेक्ट्स (लगभग 75kbs या 80k वर्ण) की एक बड़ी धारावाहिक सरणी देता है। हर बार जब मैं कोशिश करता हूं और इसे वापस करता हूं तो यह 3000 वर्ण सीमा को हिट करता है। सर्वर पर या jQuery के AJAX कार्यान्वयन के भीतर कहीं भी अधिकतम आकार सेट है?AJAX प्रतिक्रिया आकार सीमा

संपादित करें: 3'000 सीमा क्रोम सीमा है, एफएफ की 10'000 वर्ण सीमा है और सफारी की कोई सीमा नहीं है। मुझे लगता है कि रिटर्न डेटा को विभाजित/कम करने के लिए मेरे कोड को बदलने के अलावा इसके लिए कोई फिक्स नहीं है।

+0

इसी तरह: http://stackoverflow.com/q/1151987/1026459 –

+0

हालांकि एएसपी है - मैंने देखा कि खोज करते समय ... – RichieAHB

+0

[यह प्रश्न] (http://stackoverflow.com/questions/898477/ AJAX- अनुरोध-ब्राउज़र-सीमा) कुछ प्रकाश डाल सकता है। स्वीकार्य उत्तर बताता है कि यह जेएसओएन सरणी _depth_ है जो मायने रखता है, आकार नहीं। जब आप अपनी 3k चार प्रतिक्रिया देखते हैं, तो क्या यह किसी सरणी/वस्तु की शुरुआत में या यादृच्छिक स्थान पर कट जाता है? – Bojangles

उत्तर

1

आप अपने JSON विभाजित कर सकते हैं और भाग

द्वारा $ .ajax भाग के साथ मिलता है मैं के लिए आप

एचटीएमएल ओर एक उदाहरण बना दिया:

<!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):

<?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 (भाग = आकार

), जाँच कितने टुकड़ा रों।

दूसरे के साथ $.ajax (भाग = (int) भाग-संख्या), में पाश window.result_json

में एक

पाश मार्ज के लिए नए हो रही JSON और पुराने JSON तत्वों में $.extend साथ अन्त में से JSON एक के कुछ हिस्सों पाने के लिए

नोट: $max_of_one चर निर्धारित करता है कि कितने स्लाइस पोस्ट करना है।

संबंधित मुद्दे