рдПрд╕реИрд╕реЗрдЯрд┐рдХ рд╡реЗрдм: рдЧреЛ рдФрд░ рдЬреЗрдПрд╕ рдкрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд┐рд╕реНрд╕реВ рдмрд╛рдЬрд╛рд░

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


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


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


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


  1. рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб:


    рдХ) рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░рдг, рд╕рддреНрдпрд╛рдкрди рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИ
    рдмреА) рдЙрдкрд░реЛрдХреНрдд рдСрдкрд░реЗрд╢рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рдорд╛рддреНрд░рд╛ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рд╕рдордп, рд╕рд╣рд┐рдд)
    рдЧ) рдЖрд╡реЗрджрди рдФрд░ рдбреЗрдЯрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣рдорд▓реЗ рд╡реИрдХреНрдЯрд░ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ
    d) рдЗрд╕рдореЗрдВ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдФрд░ рдЗрдВрдЯреЗрд░рд╕реЗрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рд╣реИ
    рдИ) рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо, рд╕рд░рд▓ рддреИрдирд╛рддреА


  2. рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖:


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



рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рддрд╛рд░реНрдХрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ, рдФрд░ рдПрдХ рдбрд┐рдЧреНрд░реА рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЗрди рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ (рдкреЛрд╕реНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реНрд░реЛрдд рдФрд░ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ)ред


рдЪреЗрддрд╛рд╡рдиреА:
  • рдореИрдВ рдЕрдиреБрдорддрд┐ рдХреЗ рдмрд┐рдирд╛ рдбреЗрдореЛ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЕрдЬреНрдЮрд╛рдд рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЧреЙрд╕реЗ рдЬреА, рдкреНрд░реЛрдЬрд╝реЛрд░реЛрд╡рд╕реНрдХрд╛рдпрд╛ рдмреА рдбреА рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдШрд░ "рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдл рдлреНрд▓реЛрд░реЗрдВрд╕ рдкрд╛рд╡реЗрд▓рдХреЛрд╡" рд╕реЗ рдХрд╛рдо рдХреЗ рдЕрдВрд╢ "рд╕рд┐рджреНрдзрд╛рд░реНрде" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
  • рд▓реЗрдЦрдХ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдпрд╛ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
  • рдореИрдВ рдХреЛрдб рдХреА рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБ, рдпрд╣ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдордЬреЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЖрддреНрдорд╛ рдФрд░ рдПрдХ рджреЛрд╕реНрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВред
  • рдореИрдВ рд╕рд╛рдХреНрд╖рд░рддрд╛ рджрд░ рдХреЗ рд▓рд┐рдП рднреА рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдкрд╛рда рдореЗрдВред рдордИ рд╣рд╛рд░реНрдЯ рд╕реЗ рдмреЛрд▓реЛ рд╕рд╛рд▓ред
  • рдкреНрд░рд╕реНрддреБрдд рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг [рдХреНрд░реЛрдорд┐рдпрдо 70 рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛; linux x86_64; 1366x768], рдореИрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред
  • рдпрд╣ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдФрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рд╖рдп рд╣реИ - рджреГрд╖реНрдЯрд┐рдХреЛрдг рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд, рдореИрдВ рдкреВрдЫрддрд╛ рд╣реВрдВ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рднреА рдЖрд▓реЛрдЪрдирд╛рдПрдВ рдФрд░ рд╕реМрдВрджрд░реНрдп рдкрдХреНрд╖ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рд░реНрд╡рд░


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


рдЧреЛ-рд╕рдореБрджрд╛рдп рдореЗрдВ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ), рд╣рдо рдПрдХ рд╕рдордЭреМрддрд╛ рдЪреБрдирддреЗ рд╣реИрдВ рдФрд░ рд▓реИрдмрд╕реНрдЯреИрдХ / рдЗрдХреЛ рдорд╛рдЗрдХреНрд░реЛрдлреНрд░рд╛рдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рджрд┐рдирдЪрд░реНрдпрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдЦреЛ рд░рд╣рд╛ рд╣реИред


рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ tidwall / buntdb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд╛рдзрд╛рди рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдУрд╡рд░рд╣реЗрдб рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЗрди-рдореЗрдореЛрд░реА + рдХреБрдВрдЬреА / рдореВрд▓реНрдп - рдлреИрд╢рдиреЗрдмрд▓, рд╕реНрдЯрд╛рдЗрд▓рд┐рд╢ рдлрд╛рд╕реНрдЯ рдФрд░ рдХреЛрдИ рдХреИрд╢ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣рдо JSON рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рджреЗрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рддрднреА рдмрджрд▓рддреЗ рд╣реИрдВред


рджреВрд╕рд░реА рдкреАрдврд╝реА рдХреЗ i3 рдкрд░, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ 0.5 рд╕реЗ 10ms рддрдХ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЙрд╕реА рдорд╢реАрди рдкрд░ рд░рдирд┐рдВрдЧ рд░реЗрдХ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИ:


тЮЬ comico git:(master) wrk -t2 -c500 -d60s http://localhost:9001/pub/mtimes Running 1m test @ http://localhost:9001/pub/mtimes 2 threads and 500 connections Thread Stats Avg Stdev Max +/- Stdev Latency 20.74ms 16.68ms 236.16ms 72.69% Req/Sec 13.19k 627.43 15.62k 73.58% 1575522 requests in 1.00m, 449.26MB read Requests/sec: 26231.85 Transfer/sec: 7.48MB 

 тЮЬ comico git:(master) wrk -t2 -c500 -d60s http://localhost:9001/pub/goods Running 1m test @ http://localhost:9001/pub/goods 2 threads and 500 connections Thread Stats Avg Stdev Max +/- Stdev Latency 61.79ms 65.96ms 643.73ms 86.48% Req/Sec 5.26k 705.24 7.88k 70.31% 628215 requests in 1.00m, 8.44GB read Requests/sec: 10454.44 Transfer/sec: 143.89MB 

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛


рдХреЙрдорд┐рдХреЛ / рдореЙрдбрд▓ рдкреИрдХреЗрдЬ рдХреЛ рддреАрди рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
model.go - рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрддрд╛ рд╣реИ: рдирд┐рд░реНрдорд╛рдг / рдЕрдкрдбреЗрдЯ (рдмрдВрдбрдмреЗрдЯ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ), рд╕рддреНрдпрд╛рдкрди, рд╡рд┐рд▓реЛрдкрди, рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
rules.go - рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдФрд░ рд▓реЙрдЧрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ;
files.go - рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
Mtimes рдкреНрд░рдХрд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред


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


 func Delete(db byte, key string) error func Exist(db byte, key string) bool func Insert(db byte, key, val string) error func ReadAll(db byte, pattern string) (str string, err error) func ReadOne(db byte, key string) (str string, err error) func Renew(db byte, key string) (err error, newId string) 

рдХреЙрдорд┐рдХреЛ / cnst рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рднреА рд╕рдВрдХреБрд▓ (рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░) рдореЗрдВ рдХреБрдЫ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рднреА рдорд╛рдирд╡-рдкрдардиреАрдп рд╕рдВрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рд╕рд░реНрд╡рд░ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред


рдХреЙрдорд┐рдХреЛ / рд╕рд░реНрд╡рд░ рдкреИрдХреЗрдЬ рдореЗрдВ рд░реВрдЯрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╕ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ (рдЗрдХреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж), рдЬреЗрдбрдмреНрд▓реНрдпреВрдЯреА, рдХреЙрд░реНрд╕, рд╕реАрдПрд╕рдкреА рд╣реЗрдбрд░, рд▓рдХрдбрд╝рд╣рд╛рд░рд╛, рд╕реНрдереИрддрд┐рдХ рд╡рд┐рддрд░рдг, рдЧрдЬрд╝рд┐рдк, рдПрд╕реАрдПрдордИ рдСрдЯреЛ-рдкреНрд░рдорд╛рдг рдкрддреНрд░, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдПрдкреАрдЖрдИ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯреНрд╕


рдпреВрдЖрд░рдПрд▓рдбреЗрдЯрд╛рд╡рд┐рд╡рд░рдг
рдорд┐рд▓ / рдкрдм / (рдорд╛рд▓ | рдкреЛрд╕реНрдЯ | рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ | cmnts | рдлрд╛рдЗрд▓реЗрдВ)-рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдШреЛрд╖рдгрд╛рдУрдВ, рдкреЛрд╕реНрдЯ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
get / pub / mtimes-рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдкреЛрд╕реНрдЯ / рдкрдм / рд▓реЙрдЧрд┐рди{рдЖрдИрдбреА *: рд▓реЙрдЧрд┐рди, рдкрд╛рд╕ *: рдкрд╛рд╕рд╡рд░реНрдб}JWT рдЯреЛрдХрди рдФрд░ рдЗрд╕рдХреА рдЕрд╡рдзрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдкреЛрд╕реНрдЯ / рдкрдм / рдкрд╛рд╕{рдЖрдИрдбреА *, рдкрд╛рд╕ *}рдпрджрд┐ рдбреЗрдЯрд╛ рд╕рд╣реА рд╣реИ рддреЛ рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддрд╛ рд╣реИ
рдбрд╛рд▓ / рдПрдкреА / рдкрд╛рд╕{рдЖрдИрдбреА *, рдкрд╛рд╕ *}рдкрд╛рд╕рд╡рд░реНрдб рдЕрдкрдбреЗрдЯ
рдкреЛрд╕реНрдЯ | рдбрд╛рд▓ / рдПрдкреА / рдорд╛рд▓{рдЖрдИрдбреА *, рд╕рд╛рдорд╛рдиреНрдп *, рд╢реАрд░реНрд╖рдХ *, рдкреНрд░рдХрд╛рд░ *, рдореВрд▓реНрдп *, рдкрд╛рда *, рдЪрд┐рддреНрд░: [], рддрд╛рд▓рд┐рдХрд╛: {рдХреБрдВрдЬреА: рдореВрд▓реНрдп}рд╡рд┐рдЬреНрдЮрд╛рдкрди рдмрдирд╛рдПрдВ / рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдкреЛрд╕реНрдЯ | рдбрд╛рд▓ / рдПрдкреА / рдкреЛрд╕реНрдЯ{рдЖрдИрдбреА *, рд╕рд╛рдорд╛рдиреНрдп *, рд╢реАрд░реНрд╖рдХ *, рдкреНрд░рдХрд╛рд░ *, рдкрд╛рда *}рдлреЛрд░рдо рдкреЛрд╕реНрдЯ рдмрдирд╛рдПрдВ / рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдкреЛрд╕реНрдЯ | рдбрд╛рд▓ / рдПрдкреАрдЖрдИ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ{рдЖрдИрдбреА *, рд╢реАрд░реНрд╖рдХ, рдкреНрд░рдХрд╛рд░, рд╕реНрдерд┐рддрд┐, рд╕реНрдХреНрд░рд╛рдЗрдм: [], рдЙрдкреЗрдХреНрд╖рд╛: [], рддрд╛рд▓рд┐рдХрд╛: {рдХреБрдВрдЬреА: рдореВрд▓реНрдп}}рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ / рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдкреЛрд╕реНрдЯ / рдПрдкреА / рд╕реЗрдореАрдиреЗрдЯ{рдЖрдИрдбреА *, рд╕рд╛рдорд╛рдиреНрдп *, рд╕реНрд╡рд╛рдореА *, рдкреНрд░рдХрд╛рд░ *, рд╕реЗ, рдкрд╛рда *}рдЯрд┐рдкреНрдкрдгреА рдирд┐рд░реНрдорд╛рдг
рд╣рдЯрд╛рдПрдБ / рдПрдкреАрдЖрдИ / (рдорд╛рд▓ | рдкреЛрд╕реНрдЯ | рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ | cmnts) / [рдЖрдИрдбреА]-рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣рдЯрд╛рддрд╛ рд╣реИ
get / api / activity-рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдВрддрд┐рдо рд░реАрдб рдЯрд╛рдЗрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ
get / api / (subscribe | рдЕрдирджреЗрдЦрд╛) / [рдЯреИрдЧ]-рд╕рджрд╕реНрдпрддрд╛ / рдЙрдкреЗрдХреНрд╖рд╛ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЯреИрдЧ (рд╣рдЯрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ))
рдкреЛрд╕реНрдЯ / рдПрдкреАрдЖрдИ / рдЕрдкрд▓реЛрдб / (рдорд╛рд▓ | рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛)рдорд▓реНрдЯреАрдкрд╛рд░реНрдЯ (рдирд╛рдо, рдлрд╝рд╛рдЗрд▓)рдлреЛрдЯреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд╡рддрд╛рд░ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ

* - рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб
рдПрдкреА - рдХреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкрдм - рдирд╣реАрдВ


рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде, рдЬреЛ рдКрдкрд░ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рд╕реНрдерд┐рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, / img / * - рдЫрд╡рд┐рдпреЛрдВ, /index.html - рдХреНрд▓рд╛рдЗрдВрдЯ) рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП 400 рдпрд╛ 404, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрджреЗрд╢ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдПрдкреАрдЖрдИ рдмрд┐рдВрджреБ 200 рдкреНрд░рддрд┐рд╕рд╛рдж рдХреЛрдб рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдкреНрд░рд╡реЗрд╢ рдЕрдзрд┐рдХрд╛рд░ рд╕рд░рд▓ рд╣реИрдВ: рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рдирд╛ рдПрдХ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рд▓реЗрдЦрдХ рдФрд░ рдореЙрдбрд░реЗрдЯрд░ рдХреЛ рд╕рдВрдкрд╛рджрди, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдореЙрдбрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдпреБрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдкреАрдЖрдИ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрдВрдЯреА-рд╡реИрдВрдбрд▓ рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдФрд░ рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░, рдЕрдХреНрд╕рд░ рдкрд╣реБрдВрдЪ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рддреНрд░реБрдЯрд┐ рдЖрдкрдХреЛ рдереЛрдбрд╝реА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкрд╛рд╕рд╡рд░реНрдб рдЕрдиреБрдорд╛рди рдХреЗ рдЦрд┐рд▓рд╛рдл рдЙрдкрдпреЛрдЧреА)ред


рдЧреНрд░рд╛рд╣рдХ


рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╡реЗрдм рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд╕рдВрдж рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдЖрдзреБрдирд┐рдХ рд╕рд╛рдЗрдЯреЛрдВ / рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реА рдУрд░, рдЬреЗрдПрд╕ рдХреЛрдб рдХреЗ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рд╛рдЗрдЯ рдХреЛ рдбрд┐рдкреНрд░реЗрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ (рдФрд░ рди рдХреЗрд╡рд▓) рд╕рдорд╕реНрдпрд╛ Svelte рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдврд╛рдВрдЪрд╛ (рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛) рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рд╡реАрдпреВ рд╕реЗ рдиреАрдЪ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдПрдХ рдЕрдиреБрдЪрд┐рдд рд▓рд╛рдн рд╣реИ - рдШрдЯрдХреЛрдВ рдХреЛ рд╡реЗрдирд┐рд▓рд╛ рдЬреЗрдПрд╕ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрдВрдбрд▓ рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рдЖрднрд╛рд╕реА рдорд╢реАрди рдкрд░ рд▓реЛрдб (рдмрдВрдбрд▓) рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдкрд┐рд╕реНрд╕реВ рдмрд╛рдЬрд╛рд░ рдорд╛рдореВрд▓реА рд╣реИ, рдЖрдЬ рдХреЗ рдорд╛рдирдХреЛрдВ рд╕реЗ, 24KB)ред рд╡рд┐рд╡рд░рдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рд╣рдо рдкрд┐рд╕реНрд╕реВ рдмрд╛рдЬрд╛рд░ рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХреЗ рд▓рд┐рдП SvelteJS рдкрд┐рд╕реНрд╕реВ рдмрд╛рдЬрд╛рд░ рдЪреБрдирддреЗ рд╣реИрдВ, рд╣рдо рд░рд┐рдЪ рд╣реИрд░рд┐рд╕ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрддреЗ рд╣реИрдВ!


PS рдореИрдВ рдХрд┐рд╕реА рдХреЛ рдирд╛рд░рд╛рдЬ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдЙрдкрдХрд░рдг рд╣реИрдВред


рдЧреНрд░рд╛рд╣рдХ / рдбреЗрдЯрд╛


рдпреВрдЖрд░рдПрд▓


рд╣рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рдмрд╣реБ-рдкреГрд╖реНрда рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдЕрдиреБрдХрд░рдг рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХреНрд╡реЗрд░реА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИрд╢ рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП, рдЖрдк рдмрд┐рдирд╛ js рдХреЗ рд╕рд╛рдорд╛рдиреНрдп <a> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЕрдиреБрднрд╛рдЧ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ: / # рдорд╛рд▓ , / # рдкреЛрд╕реНрдЯ , / # рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ред
рдкреИрд░рд╛рдореАрдЯрд░ :? Id = record_id ; рдкреЗрдЬ = рдкреЗрдЬ_рдирдВрдмрд░ ; рдЦреЛрдЬ = search_query ред


рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:


  • / # рдкреЛрд╕реНрдЯ? рдЖрдИрдбреА = 1542309643 рдФрд░ рдкреЗрдЬ = 999 рдФрд░ рдЦреЛрдЬ = {рд╕рд╛рдорд╛рдиреНрдп: рдПрдиреЙрди } - рдЕрдиреБрднрд╛рдЧ рдкреЛрд╕реНрдЯ , рдкреЛрд╕реНрдЯ рдЖрдИрдбреА - 1542309643 , рдЯрд┐рдкреНрдкрдгреА рдкреГрд╖реНрда - 999 , рдЦреЛрдЬ рдХреНрд╡реЗрд░реА - { рдСрд░реНрдЯрд┐рдХрд▓: рдПрдиреЙрди }
  • / # рдорд╛рд▓? рдкреГрд╖реНрда = 2 рдФрд░ рдЦреЛрдЬ = рд╕рд┐рджреНрдзрд╛рд░реНрде - рдЕрдиреБрднрд╛рдЧ рдорд╛рд▓ , рдЕрдиреБрднрд╛рдЧ рдкреГрд╖реНрда - 2 , рдЦреЛрдЬ рдХреНрд╡реЗрд░реА - рд╕рд┐рджреНрдзрд╛рд░реНрде
  • / # рдорд╛рд▓; рдЦреЛрдЬ = рд╡реЗрдпрд░ {рдХреА: рд╡реИрд▓реНрдпреВ} рдЯреА - рд╕реЗрдХреНрд╢рди рдЧреБрдбреНрд╕ , рд╕рд░реНрдЪ рдХреНрд╡реИрд░реА - рдореЗрдВ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд╣реЗрдбрд░ рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд╡рд╛рд░реНрдЯ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдФрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд╕рд╛рд░рдгреАрдмрджреНрдз рднрд╛рдЧ рдХреА рдкреНрд░рдореБрдЦ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рджрд┐рдП рдЧрдП рд╡реИрд▓реНрдпреВ рдХреА рдЦреЛрдЬ рд╣реЛрддреА рд╣реИред
  • / # рдорд╛рд▓? рдЦреЛрдЬ = {рдореЙрдбрд▓: 100, рдкреНрд░рджрд░реНрд╢рди: 256} - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ

рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ URL рдкреАрдврд╝реА рдХреЗ рдХрд╛рд░реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:


 window.addEventListener('hashchange', function() { const hash = location.hash.slice(1).split('?'), result = {} if (!!hash[1]) hash[1].split('&').forEach(str => { str = str.split('=') if (!!str[0] && !!str[1]) result[decodeURI(str[0]).toLowerCase()] = decodeURI(str[1]).toLowerCase() }) result.type = hash[0] || 'goods' store.set({ hash: result }) }) function goto({ type, id, page, search }) { const { hash } = store.get(), args = arguments[0], query = [] new Array('id', 'page', 'search').forEach(key => { const value = args[key] !== undefined ? args[key] : hash[key] || null if (value !== null) query.push(key + '=' + value) }) location.hash = (type || hash.type || 'goods') + (!!query.length ? '?' + query.join('&') : '') } 

рдПрдкреАрдЖрдИ


рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдлрд╝рд┐рд╢ рдПрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдереЛрдбрд╝реЗ-рдереЛрдбрд╝реЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЕрджреНрдпрддрди рд░рд┐рдХреЙрд░реНрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо / рдкрдм / mtimes рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╕рдордп рд╕реНрдерд╛рдиреАрдп рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рдВ, SSE рдпрд╛ WebSockets рдФрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдбреЗрдЯ рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛:


 async function GET(type) { const response = await fetch(location.origin + '/pub/' + type) .catch(() => ({ ok: false })) if (type === 'mtimes') store.set({ online: response.ok }) return response.ok ? await response.json() : [] } async function checkUpdate(type, mtimes, updates = {}) { const local = store.get()._mtimes, net = mtimes || await GET('mtimes') if (!net[type] || local[type] === net[type]) return const value = updates['_' + type] = await GET(type) local[type] = net[type]; updates._mtimes = local if (!!value && !!value.sort) store.set(updates) } async function checkUpdates() { setTimeout(() => checkUpdates(), 30000) const mtimes = await store.GET('mtimes') new Array('users', 'goods', 'posts', 'cmnts', 'files') .forEach(type => checkUpdate(type, mtimes)) } 

рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рдкреЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Svelte рдХреЗ рдкрд░рд┐рдХрд▓рд┐рдд рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдХрд▓рд┐рдд рдорд╛рдиреЛрдВ рдХреА рджрд┐рд╢рд╛ рд╣реИ: рдЖрдЗрдЯрдо (рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд░рдгрд┐рдпрд╛рдБ) => рдЙрдкреЗрдХреНрд╖рд┐рдд (рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдирджреЗрдЦреА рд╕реВрдЪреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб) => scribedItems (рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреА рд╕реВрдЪреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рд╕рдХреНрд░рд┐рдп рд╣реЛ) => curItem рдФрд░ curItems (рд╡рд░реНрддрдорд╛рди рд░рд┐рдХреЙрд░реНрдб рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ) рдЕрдиреБрднрд╛рдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ) => рдлрд╝рд┐рд▓реНрдЯрд░реНрдб рдЗрдЯреНрд╕ (рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣реИ - рдЙрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ) => рдореИрдХреНрд╕рдкреЗрдЬ (рдкреНрд░рддрд┐ рдкреГрд╖реНрда 12 рд░рд┐рдХреЙрд░реНрдб / рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ) => pPItem (рдЕрдВрддрд┐рдо рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ) рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреЛрд╕реНрдЯ / рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ)ред


рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдФрд░ рдЪрд┐рддреНрд░ ( рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдФрд░ _images ) рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдкреНрд░рдХрд╛рд░ рдФрд░ рдорд╛рд▓рд┐рдХ рд░рд┐рдХреЙрд░реНрдб рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХреГрддред


рдЧрдгрдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдФрд░ рдХреЗрд╡рд▓ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдмрджрд▓рддрд╛ рд╣реИ, рдордзреНрдпрд╡рд░реНрддреА рдбреЗрдЯрд╛ рд▓рдЧрд╛рддрд╛рд░ рдореЗрдореЛрд░реА рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рд╣рдо рдПрдХ рдЕрдкреНрд░рд┐рдп рдирд┐рд╖реНрдХрд░реНрд╖ рдмрдирд╛рддреЗ рд╣реИрдВ - рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ / рдпрд╛ рдЗрд╕рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред


рдХреИрд╢


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


 store.on('state', ({ changed, current }) => { Object.keys(changed).forEach(prop => { if (!prop.indexOf('_')) localStorage.setItem(prop, JSON.stringify(current[prop])) }) }) function loadState(state = {}) { for (let i = 0; i < localStorage.length; i++) { const prop = localStorage.key(i) const value = JSON.parse(localStorage.getItem(prop) || 'null') if (!!value && !prop.indexOf('_')) state[prop] = value } store.set(state) } 

рдлрд╛рдЗрд▓реЗрдВ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ (рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдХреЗ рд╕рд╛рде) рдХреА рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рд╕реВрдЪреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдкреБрд░рд╛рдиреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдирдИ рдлрд╛рдЗрд▓реЗрдВ рдХреИрд╢реЗрд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ:


 async function cacheImages(newFiles) { const oldFiles = JSON.parse(localStorage.getItem('_files') || '[]') const cache = await caches.open('comico') oldFiles.forEach(file => { if (!~newFiles.indexOf(file)) { const [ id, type ] = file.split(':') cache.delete(`/img/${type}_${id}_sm.jpg`) }}) newFiles.forEach(file => { if (!~oldFiles.indexOf(file)) { const [ id, type ] = file.split(':'), src = `/img/${type}_${id}_sm.jpg` cache.add(new Request(src, { cache: 'no-cache' })) }}) } 

рдлрд┐рд░, рдЖрдкрдХреЛ рднреНрд░реВрдг рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрд╢реЗрд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ ServiceWorker рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрд╕реА рд╕рдордп, рд╣рдо рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд╣рд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ:


 const CACHE = 'comico', FILES = [ '/', '/bundle.css', '/bundle.js' ] self.addEventListener('install', (e) => { e.waitUntil(caches.open(CACHE).then(cache => cache.addAll(FILES)) .then(() => self.skipWaiting())) }) self.addEventListener('fetch', (e) => { const r = e.request if (r.method !== 'GET' || !!~r.url.indexOf('/pub/') || !!~r.url.indexOf('/api/')) return if (!!~r.url.lastIndexOf('_sm.jpg') && e.request.cache !== 'no-cache') return e.respondWith(fromCache(r)) e.respondWith(toCache(r)) }) async function fromCache(request) { return await (await caches.open(CACHE)).match(request) || new Response(null, { status: 404 }) } async function toCache(request) { const response = await fetch(request).catch(() => fromCache(request)) if (!!response && response.ok) (await caches.open(CACHE)).put(request, response.clone()) return response } 

рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдирд╛рдбрд╝реА рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред


рдЧреНрд░рд╛рд╣рдХ / рдЗрдВрдЯрд░рдлрд╝реЗрд╕


рдШрдЯрдХ рд╕рдВрд░рдЪрдирд╛:
index.html | main.js
== рд╢реАрд░реНрд╖рд▓реЗрдЦ.html - рдореЗрдВ рдПрдХ рд▓реЛрдЧреЛ, рд╕реНрдерд┐рддрд┐ рдкрдЯреНрдЯреА, рдореБрдЦреНрдп рдореЗрдиреВ, рдирд┐рдЪрд▓рд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдиреВ, рдЯрд┐рдкреНрдкрдгреА рд╕рдмрдорд┐рд╢рди рдлрд╝реЙрд░реНрдо рд╣реЛрддрд╛ рд╣реИ
== рдПрдХ рддрд░рдлред html - рд╕рднреА рдореЛрдбрд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ
==== goodForm.html - рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рд░реНрдо
==== userForm.html - рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдлрд╝реЙрд░реНрдо рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
====== tableForm.html - рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЙрд░реНрдо рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛
==== postForm.html - рдлреЛрд░рдо рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдлрд╛рд░реНрдо
==== login.html - рд▓реЙрдЧрд┐рди / рдкрдВрдЬреАрдХрд░рдг рдлрд╛рд░реНрдо
==== activity.html - рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
==== goodImage.html - рдореБрдЦреНрдп рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдлреЛрдЯреЛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рджреЗрдЦреЗрдВ
== main.html - рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░
==== goods.html - рд╕реВрдЪреА рдпрд╛ рдПрдХрд▓ рдШреЛрд╖рдгрд╛ рдХрд╛рд░реНрдб
==== users.html - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди
==== posts.html - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ
==== cmnts.html - рд╡рд░реНрддрдорд╛рди рдкреЛрд╕реНрдЯ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА
====== cmntsPager.html - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдард╛рдВрдХрди


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

рдЧреНрд░рд╛рд╣рдХ / рдкреНрд░рдмрдВрдзрди


рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
Alt + s / Alt + a - рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреГрд╖реНрда рдХреЛ рдЖрдЧреЗ / рдкреАрдЫреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдкреГрд╖реНрда рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред
Alt + w / Alt + q - рдЕрдЧрд▓реЗ / рдкрд┐рдЫрд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ), рд╕реВрдЪреА рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХрд▓ рд░рд┐рдХреЙрд░реНрдб рдФрд░ рдЫрд╡рд┐ рджреГрд╢реНрдп
Alt + x / Alt + z - рдкреГрд╖реНрда рдХреЛ рдиреАрдЪреЗ / рдКрдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИред рдЫрд╡рд┐ рджреГрд╢реНрдп рдореЗрдВ, рдЖрдЧреЗ / рдкреАрдЫреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЯреЙрдЧрд▓ рдХрд░рддрд╛ рд╣реИ
рдПрд╕реНрдХреЗрдк - рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдпрджрд┐ рдЦреБрд▓рд╛ рд╣реИ, рддреЛ рд╕реВрдЪреА рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рдПрдХрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЦреБрд▓реА рд╣реИ, рддреЛ рдореЛрдб рдореЗрдВ рдЦреЛрдЬ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд░рджреНрдж рдХрд░ рджреЗрддрд╛ рд╣реИ
Alt + c - рд╡рд░реНрддрдорд╛рди рдореЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЦреЛрдЬ рдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдХреНрд╖реЗрддреНрд░ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ
Alt + v - рдПрдХрд▓ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд▓рд┐рдП рдлрд╝реЛрдЯреЛ рджреГрд╢реНрдп рдореЛрдб рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
Alt + r - рдПрдХ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЦреЛрд▓рддрд╛ / рдмрдВрдж рдХрд░рддрд╛ рд╣реИ
Alt + t - рд▓рд╛рдЗрдЯ / рдбрд╛рд░реНрдХ рдереАрдо рдХреЛ рдЯреЙрдЧрд▓ рдХрд░рддрд╛ рд╣реИ
Alt + g - рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреА рд╕реВрдЪреА
Alt + u - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
Alt + p - рдордВрдЪ
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЗрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ред рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред


рдХреАрдмреЛрд░реНрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, store.goBack () , store.nextPage () , store.prevPage () , store.nextItem () , store.prevItem () , store.search (stringValue) , store.checkUpdate ('goods') || || users '||' posts '||' files '||' cmnts ') - рдХреНрдпрд╛ рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИ? store.get ()ред comments рдФрд░ store.get () ._ рдЫрд╡рд┐рдпрд╛рдВ - рд╕рдореВрд╣реАрдХреГрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ; store.get ()ред рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдФрд░ store.get ()ред scribedItems рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдордзреНрдпрд╡рд░реНрддреА рдФрд░ рдкрд░рд┐рдХрд▓рд┐рдд рдбреЗрдЯрд╛ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА store.get () рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕рдХреА рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдФрд░ рдбрд┐рд▓реАрдЯ рдХрд░рдирд╛ рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред


рдирд┐рд╖реНрдХрд░реНрд╖


рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд░рд┐рдЪрд┐рдд рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдмрд╣реБрдд рддреЗрдЬ рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдорд┐рд▓рд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ, рд╕реБрд░рдХреНрд╖рд╛, рдЧрддрд┐, рдЙрдкрд▓рдмреНрдзрддрд╛, рдЖрджрд┐ рдЪреЗрдХрд░реНрд╕ рдореЗрдВ, рдпрд╣ рд▓рдХреНрд╖рд┐рдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд┐рдирд╛ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдореИрдВ рд╕рдореБрджрд╛рдп рдХреА рд░рд╛рдп рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреИрд╕реЗ рдЙрдЪрд┐рдд рдереЗ, рдХреНрдпрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХреНрдпрд╛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ?
рд╕реНрд░реЛрдд рдХреЛрдб, рдирдореВрдирд╛ рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдбреЗрдореЛ рдпрд╣рд╛рдВ (рдХреГрдкрдпрд╛) vandals рдЖрдкрд░рд╛рдзрд┐рдХ рдХреЛрдб рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред


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


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

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


All Articles