рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢рдХреНрддрд┐ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ

рджреБрдирд┐рдпрд╛ рдЕрдзрд┐рдХ рдЕрдВрддрд░реНрд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреА рдЬрд╛ рд░рд╣реА рд╣реИ - рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 4.5 рдмрд┐рд▓рд┐рдпрди рд╣реЛ рдЧрдИ рд╣реИ ред

рдЫрд╡рд┐

рд▓реЗрдХрд┐рди рдпрд╣ рдбреЗрдЯрд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдзреАрдорд╛ рдпрд╛ рдЯреВрдЯрд╛ рд╣реБрдЖ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рд╣реИред рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдЕрдореЗрд░рд┐рдХрд╛ рдореЗрдВ рднреА 4.9 рдорд┐рд▓рд┐рдпрди рдШрд░реЛрдВ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 3 рдореЗрдЧрд╛рдмрд┐рдЯ рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЧрддрд┐ рд╕реЗ рд╡рд╛рдпрд░реНрдб рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╢реЗрд╖ рд╡рд┐рд╢реНрд╡ - рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕реЗрд╕ рд╡рд╛рд▓реЗ - рдЕрднреА рднреА рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдЦреЛрдиреЗ рдХрд╛ рдЦрддрд░рд╛ рд╣реИред рдЖрдкрдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдХрд╛рд░рдХреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдЦрд░рд╛рдм рдХрд╡рд░реЗрдЬред
  • рдЕрддреНрдпрдзрд┐рдХ рдореМрд╕рдо рдХреА рд╕реНрдерд┐рддрд┐ред
  • рдкрд╛рд╡рд░ рдЖрдЙрдЯреЗрдЬред
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдореГрдд рдЬрд╝реЛрди рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЗрдорд╛рд░рддреЗрдВ рдЬреЛ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддреА рд╣реИрдВред
  • рдЯреНрд░реЗрди рдпрд╛рддреНрд░рд╛ рдФрд░ рд╕реБрд░рдВрдЧ рдпрд╛рддреНрд░рд╛ред
  • рдРрд╕реЗ рдХрдиреЗрдХреНрд╢рди рдЬреЛ рдХрд┐рд╕реА рддреГрддреАрдп рдкрдХреНрд╖ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордп рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
  • рд╕рд╛рдВрд╕реНрдХреГрддрд┐рдХ рдкреНрд░рдерд╛рдПрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп рдпрд╛ рджрд┐рдиреЛрдВ рдореЗрдВ рд╕реАрдорд┐рдд рдпрд╛ рдмрд┐рдирд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

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

рд╕реЗрд╡рд╛ рдХрд░реНрдореА


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

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

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

рдЫрд╡рд┐

рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рдпрдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рд╣рдорд╛рд░рд╛ рдбреЗрдореЛ рдЖрд╡реЗрджрди

рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВрдЧреЗред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХрд┐рддрд╛рдмреЗрдВ рд▓реЗрдиреЗ / рдХрд┐рд░рд╛рдП рдкрд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╕рд░рд▓ рдкреЗрдЬ рд╣реИред рдкреНрд░рдЧрддрд┐ рдХреЛ GIF рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдСрдлрд╝рд▓рд╛рдЗрди Chrome DevTools рд╕рд┐рдореБрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣рд╛рдБ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рд╣реИ:

рдЫрд╡рд┐

рдХрд╛рд░реНрдп 1 - рд╕реНрдереИрддрд┐рдХ рд╕рдВрд╕рд╛рдзрди рдХреИрд╢рд┐рдВрдЧ


рд╕реНрдереИрддрд┐рдХ рд╕рдВрд╕рд╛рдзрди рд╡реЗ рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ рдЬреЛ рдЕрдХреНрд╕рд░ рдмрджрд▓рддреЗ рдирд╣реАрдВ рд╣реИрдВред HTML, CSS, JavaScript рдФрд░ рдЪрд┐рддреНрд░ рдЗрд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд┐рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрд╡рд░реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рд╣рдорд╛рд░реЗ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВред

if ('serviceWorker' in navigator) { window.addEventListener('load', function() { navigator.serviceWorker.register('/sw.js'); }); } 

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

 var CACHE_NAME = 'my-offline-cache'; var urlsToCache = [ '/', '/static/css/main.c9699bb9.css', '/static/js/main.99348925.js' ]; self.addEventListener('install', function(event) { event.waitUntil( caches.open(CACHE_NAME) .then(function(cache) { return cache.addAll(urlsToCache); }) ); }); 

рдЪреВрдВрдХрд┐ рд╣рдо рд╕реНрдереИрддрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ URL рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреИрд╢ Cache Storage рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рдЖрд░рдВрдн рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдХреИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЫрд╡рд┐

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

 self.addEventListener('fetch', function(event) { event.respondWith( fetch(event.request).catch(function() { caches.match(event.request).then(function(response) { return response; } ); ); }); 

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ fetch рдШрдЯрдирд╛ рдХреЛ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдирдП fetch рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЕрдм рдиреЗрдЯрд╡рд░реНрдХ рдЖрдЙрдЯреЗрдЬ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреИрд╢реНрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд▓реМрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рд╣реИрдВред

рдбреЗрдореЛ рдирдВрдмрд░ 1


рдЫрд╡рд┐

рд╣рдорд╛рд░реЗ рдбреЗрдореЛ рдЖрд╡реЗрджрди рдЕрдм рд╕реНрдерд┐рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдСрдлрд╝рд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рд▓реЗрдХрд┐рди рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛ рдХрд╣рд╛рдВ рд╣реИ?

рдЯрд╛рд╕реНрдХ 2 - рдХреИрд╢рд┐рдВрдЧ рдбрд╛рдпрдирд╛рдорд┐рдХ рд░рд┐рд╕реЛрд░реНрд╕


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

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

рд╣рдорд╛рд░реЗ fetch рд╣реИрдВрдбрд▓рд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

 self.addEventListener('fetch', function(event) { event.respondWith( fetch(event.request).catch(function() { caches.match(event.request).then(function(response) { return response; } ); ); }); 

рд╣рдо рд╕рдлрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдХреЛрдб рдЬреЛрдбрд╝рдХрд░ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдиреЗ рдХреИрд╢ рдореЗрдВ рдирдП рдЕрдиреБрд░реЛрдз рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдХреИрд╢реНрдб рдбреЗрдЯрд╛ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

 self.addEventListener('fetch', function(event) { event.respondWith( fetch(event.request) .then(function(response) { caches.open(CACHE_NAME).then(function(cache) { cache.put(event.request, response); }); }) .catch(function() { caches.match(event.request).then(function(response) { return response; } ); ); }); 

рд╣рдорд╛рд░реЗ Cache Storage рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВред

рдЫрд╡рд┐

рдбреЗрдореЛ рдирдВрдмрд░ 2


рдЫрд╡рд┐

рд╣рдорд╛рд░рд╛ рдбреЗрдореЛ рдЕрдм рд╣рдорд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдмреВрдЯ рдкрд░ рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИ!

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред рдЖрдЗрдП рдЕрдм рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЫрд╡рд┐

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣рд░ рдЬрдЧрд╣ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдХрд┐рддрд╛рдм рдХреЛ рдЪреБрди рдпрд╛ рд╕реМрдВрдк рдирд╣реАрдВ рд╕рдХрддрд╛! рдХреНрдпрд╛ рддрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛?

рдХрд╛рд░реНрдп 3 - рдПрдХ рдЖрд╢рд╛рд╡рд╛рджреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдПрдБ


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

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

рдЖрд╢рд╛рд╡рд╛рджреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рд╣реИред

 case CHECK_OUT_SUCCESS: case CHECK_OUT_FAILURE: list = [...state.list]; list.push(action.payload); return { ...state, list, }; case CHECK_IN_SUCCESS: case CHECK_IN_FAILURE; list = [...state.list]; for (let i = 0; i < list.length; i++) { if (list[i].id === action.payload.id) { list.splice(i, 1, action.payload); } } return { ...state, list, }; 

рдХреБрдВрдЬреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ - рдЪрд╛рд╣реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рд╕рдлрд▓ рд╣реЛ рдпрд╛ рди рд╣реЛред рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░рд┐рдбреНрдпреВрд╕рд░ reducer рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ SUCCESS рдФрд░ FAILURE рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╣рдо рдЕрдкрдиреА рдкреБрд╕реНрддрдХреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдбреЗрдореЛ рдирдВрдмрд░ 3


рдЫрд╡рд┐

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

рдЕрдЪреНрдЫрд╛ рд╣реИ! рдЖрд╢рд╛рд╡рд╛рджреА рдСрдлрд╝рд▓рд╛рдЗрди рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ ...

рдХреНрдпрд╛ рд╣рдо рдЕрдкрдирд╛ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдЦреЛрддреЗ?

рдЫрд╡рд┐

рдЯрд╛рд╕реНрдХ 4 - рддреБрд▓реНрдпрдХрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рдХрд░реЗрдВ


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

  • рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди
  • рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЙрдЪреНрдЪ рднрдВрдбрд╛рд░рдг рд╕реАрдорд╛
  • рд▓реЗрди-рджреЗрди рдкреНрд░рдмрдВрдзрди

рд╣рдорд╛рд░реЗ рдкреБрд░рд╛рдиреЗ reducer рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ:

 case CHECK_OUT_SUCCESS: case CHECK_OUT_FAILURE: list = [...state.list]; list.push(action.payload); return { ...state, list, }; case CHECK_IN_SUCCESS: case CHECK_IN_FAILURE; list = [...state.list]; for (let i = 0; i < list.length; i++) { if (list[i].id === action.payload.id) { list.splice(i, 1, action.payload); } } return { ...state, list, }; 

рдЖрдЗрдП FAILURE рдЗрд╡реЗрдВрдЯ рдХреЗ рджреМрд░рд╛рди IndexedDB рдореЗрдВ рдЪреЗрдХ-рдЗрди рдФрд░ рдЪреЗрдХ-рдЖрдЙрдЯ рдИрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред

 case CHECK_OUT_FAILURE: list = [...state.list]; list.push(action.payload); addToDB(action); // QUEUE IT UP return { ...state, list, }; case CHECK_IN_FAILURE; list = [...state.list]; for (let i = 0; i < list.length; i++) { if (list[i].id === action.payload.id) { list.splice(i, 1, action.payload); addToDB(action); // QUEUE IT UP } } return { ...state, list, }; 

рдпрд╣рд╛рдВ AddToDB addToDB рдХреЗ рд╕рд╛рде IndexedDB рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

 let db = indexedDB.open('actions', 1); db.onupgradeneeded = function(event) { let db = event.target.result; db.createObjectStore('requests', { autoIncrement: true }); }; const addToDB = action => { var db = indexedDB.open('actions', 1); db.onsuccess = function(event) { var db = event.target.result; var objStore = db .transaction(['requests'], 'readwrite') .objectStore('requests'); objStore.add(action); }; }; 

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

 window.addEventListener('online', () => { const db = indexedDB.open('actions', 1); db.onsuccess = function(event) { let db = event.target.result; let objStore = db .transaction(['requests'], 'readwrite') .objectStore('requests'); objStore.getAll().onsuccess = function(event) { let requests = event.target.result; for (let request of requests) { send(request); // sync with the server } }; }; }); 

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдЙрди рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдХрддрд╛рд░ рдХреЛ рд╕рд╛рдл рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрд╛ рдерд╛ред

рдбреЗрдореЛ рдирдВрдмрд░ 4


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

рдЫрд╡рд┐

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдСрдлрд╝рд▓рд╛рдЗрди рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдСрдирд▓рд╛рдЗрди рд▓реМрдЯрддреЗ рд╕рдордп рдПрдХ рдмрд╛рд░ рднреЗрдЬрд╛ рдЧрдпрд╛ред

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

рдмрд╕ рдЗрддрдирд╛ рд╣реА


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


рдмреНрд▓реЙрдЧ рднреА рдкрдврд╝реЗрдВ
EDISON рдХрдВрдкрдиреА:


рдХреЗ рд▓рд┐рдП 20 рдкреБрд╕реНрддрдХрд╛рд▓рдп
рд╢рд╛рдирджрд╛рд░ iOS рдЖрд╡реЗрджрди

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


All Articles