AJAX рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдирд╛



Joosy , AJAX рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде - рд▓реЗрдХрд┐рди рдЬреИрд╕реА рдХрд┐ рдЙрдореНрдореАрдж рдереА - рдЙрди рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдкрд╛рдиреА рдлреЗрд░ рджрд┐рдпрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддрд┐рдорд╛рди рдПрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рдмреЗрд╣рдж рд╕рдлрд▓ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ рд╣реИред рд╡рд╣реА рдХреНрд▓рд╛рд╕рд┐рдХ: тАЬAJAX рдЕрдиреБрдХреНрд░рдордг? Pff ... "ред рдЬрдмрдХрд┐ рд╣рдо рдСрдирд▓рд╛рдЗрди рдмреИрдВрдХрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЦреБрд▓реЗ рд╡реЗрдм-рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЗрд╕ рдЙрддреНрддрдо рдЖрдирдВрдж рд╕реЗ рдХреИрд╕реЗ рдЗрдирдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдФрд░ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: Google AJAX рдХреНрд░реЙрд▓рд┐рдВрдЧ Google рдХрд╛ рдорд╛рдирдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ Google рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ (#!) рдореЗрдВ AJAX рдкрддреЗ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рдЕрдиреНрдп рдЬрд╛рджреБрдИ рдкрддреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЬрд┐рд╕рд╕реЗ Google рдЗрд╕ рдкреГрд╖реНрда рдХреЗ HTML рдбрдВрдк рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕реЗ рд╡рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрдмрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЛрдЧреЛрдВ рдиреЗ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рд╣реИред рдЦреИрд░, рдпрд╣ рд╕реАрдЦрдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдЗрд╕ рдбрдВрдк рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рд╣рд╛рдВ, рддрд╛рдХрд┐ рдЖрд╡реЗрджрди рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд┐рдП рдмрд┐рдирд╛ред


рд╣реИрд╢рдмреИрдВрдЧ рдПрдХ рдЫреЛрдЯрд╛ рд░реВрдмреА рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рд░реИрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдмреА рдФрд░ / рдпрд╛ рд░реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЬреЛ рд▓реЛрдЧ рд╕реНрд╡рдпрдВ рд░реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдмрдиреНрд╕ рддреИрдпрд╛рд░ рдХрд┐рдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдмрд╛рддреЗрдВ рдкрд╣рд▓реЗред

рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдХрд░рдг


рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд╛рдж, рд╣реИрд╢рдмрдВрдЧ рдЕрдкрдиреЗ рдЖрдВрддреНрд░реЛрдВ рдореЗрдВ рдПрдХ WebKit рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИред рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрд░реЛрдз рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдкрддрд╛ рдЦреЛрд▓рддрд╛ рд╣реИ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдШрдЯрдирд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рд╕ рд╕рдордп рдпрд╣ рдШрдЯрдирд╛ рд╣реБрдИ рдереА, рддрдм HTML рдХреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

Sunscraper.finish() 

рдЬрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдкреГрд╖реНрда рдХреЛ рддреИрдпрд╛рд░ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдХрд╛рдмрд▓рд╛ рдореЛрдб рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:



рдЖрдВрддрд░рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рд╣рдордиреЗ рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рд╡рдЯреАрд░ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдореМрдЬреВрджрд╛ рдХреНрдпреВрдЯреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдХреБрдЫ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ред рд╣рддрд╛рд╢ рд╣реЛрдХрд░, рд╣рдордиреЗ рд╕рд┐рд░реНрдл Qt-WebKit рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓рд┐рдЦреА рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдХреЗ HTML рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИ: Sunscraper ред рдпрд╣ рдЪрдорддреНрдХрд╛рд░ C / C ++ рдорд┐рд╢реНрд░рдг рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ FFI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд░реВрдмреА рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ Sunscraper рди рдХреЗрд╡рд▓ MRI рдкрд░, рдмрд▓реНрдХрд┐ JRuby / Rubinius рдкрд░ рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЕрднреА рднреА рдЙрд╕реА рдПрдлрдПрдлрдЖрдИ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд░реБрдмрд┐рдирд┐рдпрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЪреВрдБрдХрд┐ рд╣рдо рдЬреЛ рднреА рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ WebKit рдЗрдВрдЬрди рд╣реА рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдЕрдзрд┐рдХрддрдо рдХреЗ рдХрд░реАрдм рд╣реИред рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд▓рд╛рдЗрд╡ рд╕рд░реНрд╡рд░ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ред

рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ


Sunscraper Qt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣реИрд╢рдмрдВрдЧ рд░рддреНрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдПрдХ рдореИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдо Homebrew рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ: brew install qt ред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдЖрдк рдХрд┐рд╕реА рднреА рдирдП рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд░реЗрд▓реЛрдВ рдкрд░ рд╡рд┐рдХрд╛рд╕-рдореЛрдб


рдпрджрд┐ рдЖрдк рд░реЗрд▓ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рдЬреЛ рд╣реИрд╢рдмреИрдВрдЧ рдХреЛ рд▓рдбрд╝рд╛рдИ рдореЗрдВ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдЧрд╛ред

рд╣реИрд╢рдмрдВрдЧ рдХреЛ рдПрдХ рд░реЗрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

  1. gem hashbang рдХреЛ рдордгрд┐рдлрд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
  2. rails g hashbang рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдзрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди rails g hashbang

рдЕрдм рдЖрдкрдХреЗ рд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░, рд╣реИрд╢рдмреИрдВрдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рд╣реИрд╢рдмреИрдВрдЧ рдХрд╛ рд╣реА рдорд┐рдиреА-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ "рд╕реЗрдЯрдЕрдк рдФрд░ рд▓реЙрдиреНрдЪ" рдореЗрдВ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ, рд╣реИрд╢рдмреИрдВрдЧ рдЕрдкрдиреЗ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ рд░реЗрд▓реНрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ _escaped_fragment_ рдореИрдЬрд┐рдХ рдЯреБрдХрдбрд╝реЗ рдпреБрдХреНрдд рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ: рд╡реЗрдмреНрд░рд┐рдХ рдПрдХ рд╣реА рдзрд╛рдЧреЗ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдФрд░ рдЬрдм рд╕реЗ рд╣реИрд╢рдмреИрдВрдЧ "рдЦреБрдж" рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИ, рдпрд╣ рдЧрддрд┐рд░реЛрдз рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╡рд░реНрддрдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ rake hashbang:rails рд╕рд╛рде rake hashbang:rails ред рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджреЛ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рдпреВрдирд┐рдХреЙрд░реНрди рд╕рд░реНрд╡рд░ рдХреЗ рддрд╣рдд рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧреАред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж - localhost:3000/?_escaped_fragment_ - рдФрд░ HTML рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдмрд╕ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЛ AJAX рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ Sunscraper.finish() рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ Sunscraper.finish() ред

рд╣реИрд╢рдмреИрдВрдЧ рдХреЛ рдпреБрджреНрдз рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╣рд╛рдВ рдпрд╣ / рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ? Url = http: // ..., rake hashbang:standalone рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ rake hashbang:standalone рдХрдорд╛рдВрдбред

рд╕реЗрдЯрдЕрдк рдФрд░ рд▓реЙрдиреНрдЪ


рдпрджрд┐ рдЖрдк рд░реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕реЗ рдХрд╣реАрдВ рдкрд░ рд░рдЦрдирд╛ рд╣реИ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рд░рддреНрди рдмрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрд╡реЗрджрди рдХреА рдЬрдбрд╝ рдореЗрдВ bundle install ред

рдЙрддреНрдкрдиреНрди / рдХреЙрдкреА рдХрд┐рдП рдЧрдП рд╣реИрд╢рдмреИрдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ config.rb рдлрд╝рд╛рдЗрд▓ рдирд┐рд╣рд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░рднрд╛рд╡реА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдХреЗрд╡рд▓ рджреЛ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ:


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рддреНрд░реА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ Nginx рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░реИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


рдпрд╣рд╛рдБ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://gist.github.com/2127685 ред рдпрд╣ рд░рд╛рд▓рд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╣реИрд╢рдмреИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

рдУрд╣ рджреБрдЦрдж


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдорд╛рдирдХ рд╣рдорд╛рд░реЗ рдореВрд▓ рд▓рд┐рдВрдЧреЛрдВ, рдпреИрдВрдбреЗрдХреНрд╕ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛ред рдпрд╣ Google рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдпрд╣ рдмрд┐рдВрдЧ (рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╛рд╣реВ) рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдлреЗрд╕рдмреБрдХ рдХреНрд░реЙрд▓рд░ рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╛рдВрдбреЗрдХреНрд╕ - рдирд╣реАрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╣реИрд╢рдмреИрдВрдЧ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдШрд░реЗрд▓реВ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрдкрдХреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдХрдо рд╕реЗ рдХрдо рдЕрднреА рдХреЗ рд▓рд┐рдПред рд╣рдо рдпрд╛рдВрдбреЗрдХреНрд╕ рдЯреАрдо рдХреЗ рдкреНрд░рддрд┐ рдЕрдЪреНрдЫреЗ рдХреА рд╣рд┐рдВрд╕рдХ рдХрд┐рд░рдгреЛрдВ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирд╕реЗ рдХрд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рдХреЛ рд╡реЗрдм рдХреЗ рдЗрддрдиреЗ рддреЗрдЬрд╝реА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реЗ рддрдХрдиреАрдХреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрджрд▓ рджреЗрдВ :)ред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ


рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрд╢рдмреИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдбрд╝рд╛рдИ рдореЗрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдордиреЗ рдЕрднреА рддрдХ рд╕рднреА рд╕рдВрднрд╡ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрд╕реЗрдореНрдмрд▓ рдХрд░рдиреЗ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рд╣рдореЗрд╢рд╛ рдирдП рдореБрджреНрджреЛрдВ рдХреЛ рдЬреАрдердм рдкрд░ рджреЗрдЦрдХрд░ рдЦреБрд╢ рд╣реЛрддреЗ рд╣реИрдВ ред

рдзрдиреНрдпрд╡рд╛рдж :)ред

Source: https://habr.com/ru/post/In140291/


All Articles