
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рд╣рд╛рдВ, рддрд╛рдХрд┐ рдЗрд╕реЗ рддреЗрдЬреА рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рдП рдФрд░ рдПрдХ http рдЕрдиреБрд░реЛрдз рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдП?
рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рд╣рдордиреЗ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рд╕рдВрдкреАрдбрд╝рди рдФрд░ рдЖрдзреБрдирд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред
рдХрд╛рд░реНрдп рд╡рд┐рд╡рд░рдг
рд╣реИрдмрд░реВрд╕рд░
рдРрдиреЗрдЯреЛ рдиреЗ рдореБрдЭрд╕реЗ рд╢рд┐рдХрд╛рдпрдд рдХреА рдХрд┐ Yandex.Direct рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЖрдкрд╕ рдореЗрдВ рдХреАрд╡рд░реНрдбреНрд╕ рдХреЗ рдЗрдВрдЯрд░рд╕реЗрдХреНрд╢рди рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдмреАрдЪ, рдХрд╛рд░реНрдп рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдереЛрдбрд╝реА рд╕реЗрд╡рд╛ рдХреА рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИред
рдХрдИ рд╕рдВрд╕рд╛рдзрд┐рдд рдХреАрд╡рд░реНрдб рд╣реИрдВ - рд╣рдЬрд╛рд░реЛрдВ рд▓рд╛рдЗрдиреЗрдВред рджреНрд╡рд┐рдШрд╛рдд рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдореЛрд░реА рдФрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╢рдХреНрддрд┐ рдкрд░ рдорд╛рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рддрдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдкрд╛рдк рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рд╣рдореЗрдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реБрдИрдВ:
- рдзреАрд░реЗ-рдзреАрд░реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЕрдХреНрд╕рд░ рдбреЗрдЯрд╛ рдирдЧрдиреЗрдХреНрд╕ / рдЕрдкрд╛рдЪреЗ / php / etc рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдПрдХ рднреА рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдирд┐рд░реНрдгрдп
рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдЖрдзреБрдирд┐рдХ рдорд╛рдирдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рддреИрдпрд╛рд░ рдХрд┐рдпрд╛:
рдЯрд╛рдЗрдкреЗрдб рдПрд░реЗ ,
рд╡рд░реНрдХрд░реНрд╕ ,
рдПрдХреНрд╕рдПрдЪрдЖрд░ 2 ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рд╕реЗрдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрд╛рдЗрдирд░реА рд░реВрдк рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВред рдЗрди рд╕рд░рд▓ рдХреНрд░рд┐рдпрд╛рдУрдВ рдиреЗ рд╣рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ 2 рдЧреБрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рдЖрдЗрдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрджрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЪрд░рдг 0: рд╕реНрд░реЛрдд рдбреЗрдЯрд╛
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдпреБрдХреНрдд рдПрдХ рд╕рд░рдгреА рдЙрддреНрдкрдиреНрди рдХреАред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕реЗ JSONP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
рдбрд╛рдЙрдирд▓реЛрдб рдХреЛрдб рдФрд░ рдбреЗрдЯрд╛ рд╕рдмрдорд┐рд╢рди рдлрдВрдХреНрд╢рди<script> function setDemoData(data) { window.initialData = data; } function send(data) { var http = new XMLHttpRequest(); http.open('POST', window.location.href, true); http.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); http.onreadystatechange = function() { if (http.readyState == 4) { if (http.status === 200) { </script> <script src="http://nodge.ru/habr/demoData.js"></script>
рдЖрдЗрдП рдбреЗрдЯрд╛ рдХреЛ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдбреАрдмрдЧрд░ рдХреЛ рджреЗрдЦреЗрдВ:
var data = JSON.stringify(initialData); send(data);

рдПрдХ рд╕рд░рд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде, рдЕрдиреБрд░реЛрдз рдорд╛рддреНрд░рд╛ 9402 Kb рд╣реИред рдмрд╣реБрдд, рд╣рдо рдХрд╛рдЯ рджреЗрдВрдЧреЗред
рдЪрд░рдг 1: рдбреЗрдЯрд╛ рд╕рдВрдкреАрдбрд╝рди
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВред рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд┐рд╕реА рднреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдПрд▓рдЬреЗрдбрдбрдмреНрд▓реНрдпреВ ,
рдбреАрдлреНрд▓реИрдЯ ,
рдПрд▓рдЬреЗрдбрдПрдордП рдФрд░ рдЕрдиреНрдпред рд╡рд┐рдХрд▓реНрдк рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рдЗрд╕реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрд╕рд╛рдиреА рд╕реЗ рдЧреАрдереВрдм рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ:
рдПрдХ ,
рджреЛ ,
рддреАрди ред
рд╣рдордиреЗ рд╕рднреА рддреАрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди PHP рдХреЗ рд╕рд╛рде рд╣рдо рдХреЗрд╡рд▓ LZW рджреЛрд╕реНрдд рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
LZW рд╕рдВрдкреАрдбрд╝рди рд╕рдорд╛рд░реЛрд╣ var LZW = { compress: function(uncompressed) { "use strict"; var i, l, dictionary = {}, w = '', k, wk, result = [], dictSize = 256;
рдЪреВрдВрдХрд┐ LZW рдХреЛ ASCII рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рд╕реЗ рдмрдЪ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ ред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВ:
var data = JSON.stringify(initialData); data = stringEscape(data); data = LZW.compress(data); send(data.join('|'));
рдЕрдиреБрд░реЛрдз рдорд╛рддреНрд░рд╛ - 6079 Kb (рд╕рдВрдкреАрдбрд╝рди 65%), 3323 Kb рдмрдЪрд╛рдпрд╛ред рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рд╕рдВрдкреАрдбрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред
рдЪрд░рдг 2: рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ
рдЪреВрдВрдХрд┐ LZW рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИред рдпрд╣ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИред
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо
рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдПрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЕрдиреБрд░реЛрдз рдорд╛рддреНрд░рд╛ - 3686 Kb (рд╕рдВрдкреАрдбрд╝рди 39%), 6079 Kb рдмрдЪрд╛рдпрд╛ред рдЕрдм рдЕрдиреБрд░реЛрдз рдХрд╛ рдЖрдХрд╛рд░ рдЖрдзрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рджреЛрдиреЛрдВ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЪрд░рдг 3: рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдгред
рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрдм рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЙрд╕реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ php рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
PHP рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЙрджрд╛рд╣рд░рдг <?php $data = readBinaryData(file_get_contents('php://input')); $data = lzw_decompress($data); $data = unicode_decode($data); $data = json_decode($data, true); function readBinaryData($buffer) { $bufferType = unpack('C', $buffer);
рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реИред
рдЪрд░рдг 4: рд╢реНрд░рдорд┐рдХ
рдЪреВрдВрдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХрд╛рдлреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреГрд╖реНрда рд╕рдВрдкреАрдбрд╝рди рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдмрд╣реБрдд рдЕрдкреНрд░рд┐рдп рдкреНрд░рднрд╛рд╡ред рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╕рднреА рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП
рд╡рд░реНрдХрд░реНрд╕ рд╣реИрдВ ред рд╡рд░реНрдХрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдиреАрдЪреЗ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЪрд░рдг 5: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб IE6 = рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)
рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
рдЯрд╛рдЗрдк рдПрд░рд┐рдпрд░ ,
рдПрдХреНрд╕рдПрдЪрдЖрд░ 2 рдФрд░
рд╡рд░реНрдХрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред
рд╕рдорд░реНрдерд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рд╕реВрдЪреА: IE10 +, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 21+, рдХреНрд░реЛрдо 26+, рд╕рдлрд╛рд░реА 5.1+, рдУрдкреЗрд░рд╛ 15+, рдЖрдИрдУрдПрд╕ 5+, рдПрдВрдбреНрд░реЙрдЗрдб 4.0+ (рд╡рд░реНрдХрд░реНрд╕ рдХреЗ рдмрд┐рдирд╛)ред
рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, рдЖрдк рдореЙрдбрд░реНрдирд┐рдЬрд╝реНрд░, рдпрд╛ рдЗрд╕ рдХреЛрдб рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЖрд╡рд╢реНрдпрдХ рдорд╛рдирдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ var compressionSupported = (function() { var check = [ 'Worker', 'Uint16Array', 'Uint32Array', 'ArrayBuffer',
рдЙрджрд╛рд╣рд░рдг
рд▓реЗрдЦ рдХрд╛ рдХреЛрдб JS Bin:
рдкреГрд╖реНрда ,
рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреЗрдЬ рдЦреЛрд▓реЗрдВ, рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рддреАрди рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рджреЗрдЦреЗрдВред
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╕рдорд╛рдзрд╛рди
рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░рддрд╛
рд╣реИ ред рдЖрдк
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреИрд╢ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЕрджреНрд╡рд┐рддреАрдп рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдмреЗрд╢рдХ, рдпрд╣ рд╡рд┐рдзрд┐ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЬреАрд╡рди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред рдХрднреА-рдХрднреА рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрдЬрд╛рдп рдХрдИ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЖрд╕рд╛рди / рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрддрд╛ рд╣реИред рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢реБрд░реВ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рд╣реЛ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдФрд░ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдмрд╕ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдПрд░рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕рд╛рд░рд╛рдВрд╢:
- рдЖрдк рди рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ тЖТ рдХреНрд▓рд╛рдЗрдВрдЯ, рдмрд▓реНрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ тЖТ рд╕рд░реНрд╡рд░ рднреА рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- XHR 2 рдФрд░ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдПрд░реЗ, рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рд╡рд░реНрдХрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреЗрдЬ рдХреЗ рд╕рд╛рде рдпреВрдЬрд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
- рдФрд░ рд╣рд╛рдВ, рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рди рдХрд░реЗрдВред
рдореБрдЭреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдФрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдореИрдВрдиреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЯрд╛рдЗрдкреЛрд╕ рдХреА рдЬрд╛рдВрдЪ рдХреА, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ - рдирд┐рдЬреА рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред
рдЕрджреНрдпрддрди 1:рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдпрд╣ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рд╛рд░реВрдк (рдЬреЗрдкреАрдИрдЬреА, рдкреАрдПрдирдЬреА, рдЬреАрдЖрдИрдПрдл) рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд░реВрдк (рдмреЗрд╕ 64) рдореЗрдВред рдореИрдВрдиреЗ рдХреИрдирд╡рд╛рд╕ рдХреЗ
рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛
рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ , рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдмреЗрд╕ 64 рдХреЛ рдмреВрдБрдж рд░реВрдкрд╛рдВрддрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрджреНрдпрддрди 2:рдпрджрд┐ рдЖрдк рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝реЗрдВред SSL рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рджреЛ-рддрд░рдлрд╝рд╛ рд╕рдВрдкреАрдбрд╝рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЕрджреНрдпрддрди 3:рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд64ред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдирд┐рдХрд▓рд╛ред
рдЙрдкрднреЛрдХреНрддрд╛ ,
seriyPS рдФрд░
TolTol рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред