рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдкрд░ рдПрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг-рджреНрд╡реИрдз (рджреЛ-рддрд░рдлрд╛) рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдорд╛рдирдХ рд╣реИ, рдЬреЛ HTTP рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд▓рд╛рдЗрд╡ рдореИрд╕реЗрдЬрд┐рдВрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ "рдЕрдиреБрд░реЛрдз URL - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред" рдЬрдм рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЗрд╕ рдорд╛рдирдХ рдХреЛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрд╛ рдерд╛, рддрдм рднреА рдпрд╣ рдЕрдкрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдерд╛ред рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдФрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЕрдкреНрд░рдпреБрдХреНрдд рдорд╕реМрджрд╛ рд╕реНрдХреЗрдЪ рдФрд░ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдорд░реНрдерди рдерд╛, рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЧрдИ рд╣реИред рдорд╛рдирдХ рдиреЗ рдХрдИ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛ (рдЬрд┐рдирдореЗрдВ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ), рдЖрд░рдПрдлрд╕реА рд╕реНрдерд┐рддрд┐ (
6455 ) рдкреНрд░рд╛рдкреНрдд рдХреА рдФрд░ рдмрдЪрдкрди рдХреА рдмреАрдорд╛рд░рд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдпрд╛ред IE10 рд╕рд╣рд┐рдд рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдРрд╕реЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╣реИрдВ рдЬреЛ рдФрджреНрдпреЛрдЧрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рддреИрдпрд╛рд░ рд╣реИрдВред
рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЗрд╡ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЕрдм рдореИрдВ рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдпрд╛ рдерд╛ред
рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рд░
рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЫреЛрдЯреА рд╕рд╛рдЗрдЯ Klavogonki.ru рдкрд░ рдПрдХ рдХреЗрдВрджреНрд░реАрдп рднрд╛рдЧ рд╣реИ - рд╡рд░реНрддрдорд╛рди рдЦреЗрд▓-рджреМрдбрд╝ рдХреА рдПрдХ рд╕реВрдЪреА рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╣реИред рд╕реВрдЪреА рдЕрддреНрдпрдВрдд рдЧрддрд┐рд╢реАрд▓ рд╣реИ: рдЦрд┐рд▓рд╛рдбрд╝реА рд╣рд░ рдХреБрдЫ рд╕реЗрдХрдВрдб рдореЗрдВ рдХрднреА-рдХрднреА рдХрдИ рдмрд╛рд░ рдПрдХ рдирдИ рджреМрдбрд╝ рдмрдирд╛рддреЗ рд╣реИрдВред рдЖрдЧрдорди рдПрдХ рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рд╡реЗ рдЦреБрд▓реЗ рдЦреЗрд▓ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рд╕рдХреНрд░рд┐рдп рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рднреА рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдкреГрд╖реНрда рд╕реЗ рджреМрдбрд╝ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИред рдПрдХ рд╕реЗ, рдФрд░ рдХрднреА-рдХрднреА рдПрдХ рд╕реМ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рддрдХ, рдпрд╣ рдПрдХ рджреМрдбрд╝ рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╣реАрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдкрд╣рд▓реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЬрдм рд╕рд╛рдЗрдЯ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛, рддреЛ рд╕реВрдЪреА рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдЕрджреНрдпрддрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕реА рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдЙрддреНрдкрдиреНрди рд╣реБрдИрдВред рд╕реВрдЪреА рдкреГрд╖реНрда рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ рд▓реЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рддрд╛рдЬрд╝рд╛ рддрд╕реНрд╡реАрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдХрдИ рджреМрдбрд╝ рдореЗрдВ рдХреЗрд╡рд▓ 10-20 рд╕реЗрдХрдВрдб рдореЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдбреЗрдЯ рдХрд╛рдлреА рдЬреАрд╡рдВрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЯрд╛рдЗрдордЖрдЙрдЯ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдпрд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдлрд┐рдЯ рдирд╣реАрдВ рдерд╛, рдФрд░ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ (рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдПрдХ рдиреЛрдЯ рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдореИрдВ рдЙрд╕ рд╕рд╛рдЗрдЯ рдкрд░ рдлреНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдордЬрдмреВрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛)ред
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди
рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдорддрджрд╛рди рдореЗрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ - рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХ рд▓рдЯрдХрд╛ рд╣реБрдЖ рдХрдиреЗрдХреНрд╢рди, рдЬреЛ рдПрдХ рдирдИ рдШрдЯрдирд╛ рдЖрдиреЗ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЦреБрд▓ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рднреА рдЕрд╕рдВрдЧрдд рд╣реЛ рдЧрдпрд╛: рдШрдЯрдирд╛рдПрдВ рдПрдХ рд╕рддрдд рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рдЖ рдЧрдИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рди рдХреЗрд╡рд▓ рдПрдХ рдирдпрд╛ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рднреА рдЦреЗрд▓реЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдордЖрдЙрдЯ, рд╕реНрдЯреЗрдЯрд╕ рдмрджрд▓рдирд╛, рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд░рдЪрдирд╛), рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реБрд░реВ рд╣реБрдИред рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрд╕рдВрддреЛрд╖ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдбрд┐рдЧреНрд░реА рдХрд╛ рдХрд╛рд░рдгред рдФрд░ рдЦреЛрд▓рдиреЗ-рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рднреА рдмрдбрд╝рд╛ рдирд╣реАрдВ рдерд╛ред
рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг HTTP рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрд╛ред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ ajax рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд░ 3 рд╕реЗрдХрдВрдб рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд░рдХреЗ рдПрдХ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдПрдХ рд╕рд░рд▓ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдмрд╕ рдЧрдпрд╛ред рд╕рд░реНрд╡рд░ рдкрд░, рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреИрд╢ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рдЬреМрди рдореЗрдВ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рдЬрдмрдХрд┐ рдЯреНрд░реИрдлрд┐рдХ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд░ рдмрд╛рд░ рдкреВрд░реА рд╕реВрдЪреА рдирд╣реАрдВ рджреА рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдбреЗрдЯрд╛ (рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ - рд╣рдо рдЖрдЧрдорди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рджреЗрддреЗ рд╣реИрдВред рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛)ред
рдкреНрд░рдгрд╛рд▓реА рдиреЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдмрдбрд╝рд╛ рдорд╛рдЗрдирд╕ рдерд╛ - рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ 10-рд╕реЗрдХрдВрдб рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде рджреМрдбрд╝ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдСрдирд▓рд╛рдЗрди рд░реЗрд╕рд┐рдВрдЧ рдЧреЗрдо рдХреА рднрд╛рд╡рдирд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рдерд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╣реБрдд рддрдХрдиреАрдХреА рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рдерд╛ред
рдЖрдк рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рдЗрд╕ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВредрдЕрдм рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдиреЗ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░реНрд╡рд░ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдЧреЗрдо рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдореИрдВрдиреЗ
рдЗрд╕рдХреЗ рд▓рд┐рдП
рдиреЛрдб.рдЬреЗрдПрд╕ рдЪреБрдирд╛ - рдПрдХ рдЗрд╡реЗрдВрдЯ-рд╕рдВрдЪрд╛рд▓рд┐рдд рдореЙрдбрд▓ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓рдмреИрдХ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рдереЗред
Php рдмреИрдХрдПрдВрдб рдФрд░ рдиреЛрдб рдкрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдгред
js redis pubsub рдЪреИрдирд▓ рд╣реИ ред рдПрдХ рдирдпрд╛ рдЧреЗрдо рдмрдирд╛рддреЗ рд╕рдордп рдпрд╛ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рдж, php рдХреБрдЫ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд (рдпрд╣рд╛рдБ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХрд╛ рдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реИ):
$redis = new Redis(); $redis->pconnect('localhost', 6379); $redis->publish("gamelist", json_encode(array( "game created", array( 'gameId' => $id))));
рд░реЗрдбрд┐рд╕ рдПрдХ рдЕрд▓рдЧ рдЯреАрд╕реАрдкреА рдкреЛрд░реНрдЯ рдкрд░ рдПрдХ рдЕрд▓рдЧ рдбреЗрдореЙрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдЬреБрдбрд╝реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд / рднреЗрдЬрддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╕рд░реНрд╡рд░, рдпрджрд┐ рдЖрдк рдЖрд╢рд╛рд╡рд╛рджреА рд╣реИрдВ) php рдФрд░ рдиреЛрдб редjs. рд▓рдЧрднрдЧ 50 php рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ 2 рдиреЛрдб .js рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрддрд╛рдИ рдХрд░ рд░рд╣реА рд╣реИрдВред
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдиреЛрдб.рдЬреЗрдПрд╕ рдХреА рдУрд░, рд░реЗрдбрд┐рд╕-рдЪреИрдирд▓
gamelist
рдХреЛ рдЧреЗрдореЗрд▓рд┐рд╕реНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
var redis = require('redis').createClient(6379, 'localhost'), redis.subscribe('gamelist');
рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ
: Voradiy рдФрд░
Joes рдХрд╛рдорд░реЗрдб
рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐
SockJS рдФрд░
рдмреЗрд╕реЗрдбрд╛ рдЬреИрд╕реЗ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдЪ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред рдпрд╣ рдЖрдкрдХреЛ рдореБрдЦреНрдп рдкрд░рд┐рд╡рд╣рди рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдлреНрд▓реИрд╢ рдпрд╛ xhr-polling рдЬреИрд╕реЗ рдЕрдиреНрдп рдЯреНрд░рд╛рдВрд╕рдлрд╝рд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЫрджреНрдо-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдЪреИрдирд▓) рдореЗрдВ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдШрдЯрдирд╛рдУрдВ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИред
var io = require('socket.io').listen(80); var gamelistSockets = io.of('/gamelist');
рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░
ws://ws.klavogonki.ru/gamelist
рд╕реЗ рдЬреБрдбрд╝рд╛
ws://ws.klavogonki.ru/gamelist
рдЗрд╕реЗ рдЧреЗрдорд▓рд┐рд╕реНрдЯ рд╕реЙрдХреЗрдЯрд┐рдпреЛ рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
<script src="http://ws.klavogonki.ru/socket.io/socket.io.js" type="text/javascript"></script> ... <script type="text/javascript"> var socket = io.connect('ws.klavogonki.ru/gamelist'); </script>
рдЬрдм рдХреЛрдИ рдШрдЯрдирд╛ рд░реЗрдбрд┐рд╕ рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреИрдХрдПрдВрдб рд╕реЗ рдЖрддреА рд╣реИ, рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реНрд╡-рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЧреЗрдорд▓рд┐рд╕реНрдЯ рдореЗрдВ рд╕рднреА рдХрдиреЗрдХреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ:
redis.on('message', function(channel, rawMsgData) { if(channel == 'gamelist') { var msgData = JSON.parse(rawMsgData); var msgName = msgData[0]; var msgArgs = msgData[1]; switch(msgName) { case 'game created': { ... gamelistSockets.emit('game created', info); break; } case 'game updated': { ... gamelistSockets.emit('game updated', info); break; } case 'player updated': { ... gamelistSockets.emit('player updated', info); break; } } } });
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдШрдЯрдирд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреГрд╖реНрда рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред
socket.on('game created', function(data) { insertGame(data); }); socket.on('game updated', function(data) { updateGame(data); }); socket.on('player updated', function(data) { updatePlayer(data); });
рд╕рд┐рджреНрдзрд╛рдВрдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдЙрдиреНрдирдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдХрд╛рд░реНрдп рдХреЗ рддрд░реНрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ "рд╣рдо рдПрдХ рдмрджрд▓рд╛рд╡, рдПрдХ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ" рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП php рдХреЛрдб рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдиреА рдереА, рдФрд░ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХреЗ рдбреЛрдореЗрди рдХреЛ рдореБрдЦреНрдп рдорд╢реАрди рд╕реЗ рдПрдХ рдЕрд▓рдЧ рд╕реЗ рд▓реЗрдирд╛ (рддрд╛рдХрд┐ рдкреЛрд░реНрдЯ 80 рдкрд░ рд╕рд╛рдЭрд╛рдХрд░рдг рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдкреАрдбрд╝рд┐рдд рди рд╣реЛ), рд▓реЗрдХрд┐рди рд╕реВрдЦрд╛ рдЕрд╡рд╢реЗрд╖ рдкреНрд▓рд╕рд╕ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:
- рдЙрдЪреНрдЪрддрдо рдЧрддрд┐рд╢реАрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЕрдкрдбреЗрдЯ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЖрдк рдПрдХ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдореЗрдВ рдПрдХрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ 90 рдХреЗ рдЪреИрдЯ рдкреЗрдЬ рдкрд░ рдирд╣реАрдВред
- рдХреИрд╢рд┐рдВрдЧ рдХреА рд▓рдЧрднрдЧ рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдмреИрдХрдПрдВрдб рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реАрдзреЗ рдкрд╛рд░рдЧрдорди рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред
- рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рднреЗрдЬрдХрд░ рдХрд╛рд░реНрдмрдирд┐рдХ рдпрд╛рддрд╛рдпрд╛рдд рдХреА рдмрдЪрдд (рдпрджрд┐ рдЖрдк рд╕рдВрдкреАрдбрд╝рди рдХреЛ рдХрд╕рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдФрд░ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛)ред
- рдиреЗрдЯрд╡рд░реНрдХ рд▓реЛрдб рдХреА рд╡реГрджреНрдзрд┐ рд▓рдЧрднрдЧ рдЕрдЧреЛрдЪрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреЗ рдХрд┐рд╕реА рднреА рдЕрдиреБрдорд╛рди рдпреЛрдЧреНрдп рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛; рдФрд░ рд╕реАрдкреАрдпреВ рдкрд░ рд▓реЛрдб рднреА рдЧрд┐рд░ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЧрдгрдирд╛ рдмреИрдХрдПрдВрдб рдкрд░ рдПрдХ рдмрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред
- рдПрдХ рдЗрд╡реЗрдВрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╕реНрдХреАрдо рд╕реЗ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рднреА рдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдФрд░ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдХрд╛ рдПрдиреАрдореЗрд╢рди рдмрдирд╛рдирд╛ред
рдареЛрд╕ рд▓рд╛рдн, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВред
рдЖрдк рдЕрдВрдд рдореЗрдВ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред рдЕрдВрддрд░ рдирдЧреНрди рдЖрдВрдЦреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рджреЛ рдЧреЛрд▓рд┐рдпрд╛рдВ рд╣реИрдВ, Klavogonok рдХреЗ рджрд░реНрд╢рдХреЛрдВ рдкрд░ рдХреБрдЫ рдЖрдБрдХрдбрд╝реЗ, рд╕реЙрдХреЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ | рд╢реЗрдпрд░ | рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ | рд╢реЗрдпрд░ |
---|
рдХреНрд░реЛрдо | 51% | WebSocket | 90% |
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ | 20% | XHR-рдорддрджрд╛рди | 5% |
рдУрдкреЗрд░рд╛ | 15% | flashsocket | 4% |
IE (рд▓рдЧрднрдЧ 8 рдФрд░ 9 рдореЗрдВ) | 6% | jsonppolling | 1% |
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рддреИрдпрд╛рд░ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдкрд░рд┐рдгрд╛рдо, рдЧреНрд░рдВрде рд╕реВрдЪреА рдФрд░ рдиреИрддрд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдВрддрд┐рдо рд╕рд╛рд░рд╛рдВрд╢ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХрд╛ рд╕рдордп
рдмрдЪрд╛рдКрдВрдЧрд╛ рдФрд░ рдмрд╕ рдЗрддрдирд╛ рдХрд╣реВрдВрдЧрд╛:
рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╣реИрдВ!PS рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирдП рд╡рд┐рдХрд╕рд┐рдд рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ (рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрдХ рд╕рд╣рд┐рдд), рдРрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╢рдмреНрдж рдЬреИрд╕реЗ рдХрд┐ рдореЛрдВрдЧреЛрдбрдм рдФрд░ рдХреЛрдгреАрдп.рдЬреЗ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрджрд┐ рд░реБрдЪрд┐ рд╣реИ, рддреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╖рдп рд╣реЛрдВрдЧреЗред