PWA рдЖрд╕рд╛рди рд╣реИред рдирдорд╕реНрдХрд╛рд░ рдЬреВрдорд▓рд╛

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

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



рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреВрдорд▓рд╛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдореЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдХреЛ рднрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - "рдмреНрд▓реЙрдЧ" рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВред рд╣рдореЗрдВ рдпрд╣рд╛рдБ рдРрд╕реА рд╕рд╛рдЗрдЯ рдорд┐рд▓рддреА рд╣реИ - https://tetta.nut.cc/habr/hello-joomla/original/ ред рдлрд┐рд░ рд╕рднреА рд╕рд╛рдЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ https://tetta.nut.cc/habr/hello-joomla/ рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ - рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЬреВрдорд▓рд╛ рд╕рд╛рдЗрдЯ рдХреЗ рджреЛ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рд╣рдо рдкрд╣рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдФрд░ рджреВрд╕рд░рд╛ рд╣рдо PWA рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред

рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб GitHub-e рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдЬреВрдорд▓рд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛
рдЬреВрдорд▓рд╛ рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ - рд╡реЗрдм рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬреЛ рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдирдХ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХреЛ рдкреНрд░реЛрдЯреЛрд╕реНрдЯрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЬреВрдорд▓рд╛ рдЗрдВрдЬрди рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЕрдкрдиреА рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ /templates/protostar/index.php рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ HTML рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╕рд╛рдзрд╛рд░рдг PHP рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рджреЛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИ:

<jdoc:include type="component" /> <jdoc:include type="modules" name="position-id" style="..." /> 

рдкрд╣рд▓рд╛ URL рдЕрдиреБрд░реЛрдзрд┐рдд URL (рдШрдЯрдХ) рдХреЗ рдЕрдиреБрд░реВрдк рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрдЬрд╛рдп рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореЙрдбреНрдпреВрд▓ред рдЬреВрдорд▓рд╛ рдХреЗ рдХрд┐рд╕реА рднреА рдкреГрд╖реНрда рдореЗрдВ рдПрдХ рдШрдЯрдХ рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВред

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

рдЫрд╡рд┐

рдЬреВрдорд▓рд╛ рдХреА рдПрдХ рдЦрд╝рд╛рд╕рд┐рдпрдд рд╣реИ - рдЕрдЧрд░ рдХреБрдЫ рдЧреЗрдЯреЗрдЬ рдорд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд GET рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ tmpl рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рддреЛ Joomla рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ index.php рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди somePage.php рдкрд░, рдпрджрд┐ рдХреЛрдИ рд╣реЛред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдиреАрдЪреЗ рдХрд░рддреЗ рд╣реИрдВред


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реЗрд▓


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

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

рдЗрд╕реА рд╕рдордп, рд╕рд╛рдордЧреНрд░реА рд╕реНрд╡рдпрдВ, рд╕рд╛рде рд╣реА рд╕реНрдерд┐рддрд┐ -7 рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕реНрдерд┐рддрд┐ -2 рдореЗрдВ рдмреНрд░реЗрдбрдХреНрд░рдВрдм рдореЙрдбреНрдпреВрд▓, рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рд╛рдЗрдЯ рдкрд░ рд╣реИ, рдЧрддрд┐рд╢реАрд▓ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

1. рд╕рд░реНрд╡рд░ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди


рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рд╕рднреА рдбрд╛рдпрдирд╛рдорд┐рдХ рдмреНрд▓реЙрдХреНрд╕ рдХреЛ рдмрджрд▓реЗрдВред рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ index.php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢ рдмрджрд▓реЗрдВ:
 <jdoc:include type="component" />  <div id="main-content"></div> <jdoc:include type="modules" name="position-id" style="..." />  <div id="module-id"></div> 

рд╣рдо рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдорд╛рд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИрд▓реЛ-рдЬреВрдорд▓рд╛.рдЬреЗрдПрд╕ рдХреЛ рднреА index.php рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп content.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
 <jdoc:include type="component" /> 

рдореЙрдбреНрдпреВрд▓-2. рдПрдлрдкреА рдлрд╝рд╛рдЗрд▓:
 <jdoc:include type="modules" name="position-2" style="none" /> 

рдФрд░ рдореЙрдбреНрдпреВрд▓-7. рдПрдлрдкреА рдлрд╛рдЗрд▓:
 <jdoc:include type="modules" name="position-7" style="well" /> 


рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк https://tetta.nut.cc/habr/hello-joomla/index.php/5-your-modules?tmpl=module-7 рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдкреЛрд╕реНрдЯрдСрди рдореЗрдВ рд╕реНрдерд┐рдд рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдХреЛрдб рдорд┐рд▓реЗрдЧрд╛- 7ред рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрд╛рддред

рдпреЗ рд╕рднреА рд╕рд╛рдЗрдЯ рдХреЗ "рд╕рд░реНрд╡рд░" рднрд╛рдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВред рдЕрдиреНрдп рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ, рдпреЗ рдСрдкрд░реЗрд╢рди (рдРрдк рд╢реЗрд▓ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛) рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВред

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


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

рд╣реИрд▓реЛ-joomla.js
 //   url  HTML  el function loadData(el, url){ url.indexOf("?") >= 0 ? url += "&" : url += "?"; url = url + 'mode=nocache&tmpl=' + el; fetch(url) .then( function(response) { if (response.status == 200) { response.text().then(function(data) { document.getElementById(el).innerHTML = data; }); } }) .catch(); return false; } //    <a>    function handleLinks() { var links = document.querySelectorAll('a'); for (var i = 0; i < links.length; ++i) { links[i].removeEventListener("click", handleLink); links[i].addEventListener("click", handleLink); } } //   function handleLink(e) { e.preventDefault(); loadData("main-content", this.href); loadData("module-2", this.href); handleLinks(); return false; } //      function DOMLoaded() { loadData("main-content", location.pathname); loadData("module-2", location.pathname); loadData("module-7", location.pathname); handleLinks(); } document.addEventListener('DOMContentLoaded', DOMLoaded, true); 


рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдордиреЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЛ рдкреВрд░реНрдгрд░реВрдкреЗрдг рдПрд╕рдкреАрдП - рд╕рд┐рдВрдЧрд▓ рдкреЗрдЬ рдПрдкреНрд▓реАрдХреЗрд╢рди - рдПрдкреНрд▓реАрдХреЗрд╢рди рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рдмрд╛рдпреАрдВ рдУрд░ рдкреЙрд▓рд┐рд╢рд┐рдВрдЧ рд╣реИ - рд▓рд┐рдВрдХ "рдмреИрдХ рдЯреВ рдЯреЙрдк", рд╢реАрд░реНрд╖ рдореЗрдиреВ рдХреА рд╢реИрд▓рд┐рдпрд╛рдБ, рдЦреЛрдЬ рдлрд╝реЙрд░реНрдо, рдПрдирд┐рдореЗрдЯреЗрдб рдкреНрд░реАрд▓реЛрдбрд░, рдЖрджрд┐ред
рдПрд╕рдкреАрдП рдореЛрдб рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐ https://tetta.nut.cc/habr/hello-joomla/spa/ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

3. рдПрд╕рдкреАрдП -> рдкреАрдбрдмреНрд▓реНрдпреВрдП


рд╣рдо index.php рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкреНрд░рдХрдЯ рдФрд░ sw.js рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЛрдб рдореЛрдб рдореЗрдВ рд╣реЗрд▓реЛ-рдЬреВрдорд▓рд╛.рдЬреЗрдПрд╕ рдореЗрдВ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ "рдореЛрдб = рдиреЛрдЪреЗ" рдЬреЛрдбрд╝реЗрдВред

рд╡рд╣ рд╕рдм рд╣реИред рд╣реЛрдо рд╕реНрдХреНрд░реАрди рдкрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ PWA рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдЯреВрд▓рдХрд┐рдЯ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рд╕рдм рдХреБрдЫ рд╣рд╛рде рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рд╕рд╛рдл рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░рд╣рддрд╛ рд╣реИред

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

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

рдФрд░, рдкрд╛рд░рдВрдкрд░рд┐рдХ рдПрд╕рдкреАрдП рдХреЗ рд╡рд┐рдкрд░реАрдд, PWA рдЗрд╕ "рд╡реНрдпреВ" рдХреЛ рднрд╛рд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рддреЗрдЬ рдФрд░ рд╕реНрдкрд╖реНрдЯ html + рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдмрдирд╛рддрд╛ рд╣реИред

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


All Articles