2011-11-12 7 views
9

मैं अभी भी जावास्क्रिप्ट के लिए नया हूं। मेरे पास ऐसी स्थिति है जहां कई उपयोगकर्ता सर्वर पर बड़े JSON भेज सकते हैं। यातायात को सीमित करने के लिए, मैं उन्हें gzip करना चाहता हूँ। जावास्क्रिप्ट में यह संभव है? मैं JSON के स्ट्रिंग प्रस्तुति से बाइट सरणी कैसे बना सकता हूं? धन्यवाद।सर्वर पर भेजने से पहले जावास्क्रिप्ट में उपयोगकर्ता डेटा को ज़िप/gzip कैसे करें?

उत्तर

6

डेटा ज़िप करने के लिए एक नए समाधान पर एक विकिपीडिया लेख है अब उपलब्ध है: jszip

+1

_JSZip बनाने, पढ़ने के लिए जावास्क्रिप्ट लाइब्रेरी है और एक प्यारा और सरल API के साथ .zip फ़ाइलों को संपादित करना ._ यह ठीक नहीं है कि ओपी क्या पूछ रहा है। शायद एक कोड नमूना मनाने के लिए होगा। – Phil

3

मुझे कोई gzip कार्यान्वयन नहीं पता है, लेकिन आपके निपटारे में अन्य संपीड़न विधियां हैं।

यह एन्कोड LZW होगा एक स्ट्रिंग जावास्क्रिप्ट का उपयोग:

// lzw-encode a string 
function lzw_encode(s) { 
    var dict = {}; 
    var data = (s + "").split(""); 
    var out = []; 
    var currChar; 
    var phrase = data[0]; 
    var code = 256; 
    for (var i=1; i<data.length; i++) { 
     currChar=data[i]; 
     if (dict[phrase + currChar] != null) { 
      phrase += currChar; 
     } 
     else { 
      out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0)); 
      dict[phrase + currChar] = code; 
      code++; 
      phrase=currChar; 
     } 
    } 
    out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0)); 
    for (var i=0; i<out.length; i++) { 
     out[i] = String.fromCharCode(out[i]); 
    } 
    return out.join(""); 
} 
+0

से: http://stackoverflow.com/questions/294297/javascript-implementation-of-gzip –

0

मैं इतना विश्वास है, यहाँ विषय http://en.wikipedia.org/wiki/HTTP_compression

+0

हां, लेकिन यह क्लाइंट के लिए सर्वर संपीड़न के लिए कवर नहीं करता है ... – JVerstry

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

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