рдСрдлрд╝рд▓рд╛рдЗрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреНрд░реЛрдХрд░

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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


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

рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЙрджреНрднрд╡


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

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

рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ


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

рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛
/**----**/
тФЬтФАтФА app.js
тФЬтФАтФА bootstrap.js
тФЬтФАтФА classes
тФВ тФФтФАтФА QueueBroker
тФВ тФЬтФАтФА index.js
тФВ тФФтФАтФА Library
тФВ тФЬтФАтФА Broker.js
тФВ тФФтФАтФА Storage.js
тФЬтФАтФА components
/**----**/


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

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

index.js
 const Broker = require('./Library/Broker'); const Storage = require('./Library/Storage'); module.exports.Broker = Broker; module.exports.Storage = Storage; 


рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЕрдкрдиреА рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореБрдЭреЗ рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 import {Storage, Broker} from '../../classes/QueueBroker/index'; 

рд╕реНрдЯреЛрд░реЗрдЬ рдХреНрд▓рд╛рд╕ рдХреЛ рдмрджрд▓рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдмреНрд░реЛрдХрд░ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреЛрд░реЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рд╣реИрдВред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдИрдПрд╕ 6 рдкрд░ рдореИрдВ рдХреНрд▓рд╛рд╕ рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд▓рд┐рдЦ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреБрд░рд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкред рдореИрдВ рд╕реАрдзреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд▓рд┐рдЦреВрдВрдЧрд╛:

Broker.js
 const axios = require('axios'); //  axios /*     .    ,            front-end  */ function Broker(storage, prefix='storageKey') { this.storage = storage; this.prefix = prefix; /*     ,      .   storage   add     json */ if(this.storage.get('broker') === null) { this.broker = {}; this.storage.add('broker', this.broker) } else { //  , Storage    Json            this.broker = this.storage.getObject('broker'); } }; // ,           Broker.prototype.queueCount = function () { return Object.keys(this.broker).length; }; //  ""    Storage,    Broker.prototype.saveToStorage = function (method, url, data) { let key = this.prefix + '_' + (Object.keys(this.broker).length + 1); this.broker[key] = {method, url, data}; //            broker,        this.storage.add('broker', this.broker); }; // ,    ,    Broker.prototype.run = function () { for (let key in this.broker) { this.sendToServer(this.broker[key], key) } } /*    .        ,     method, url  data,        ,    ,    */ Broker.prototype.sendToServer = function (object, brokerKey) { axios({ method: object.method, url: object.url, data: object.data, }) .then(response => { if(response.data.status == 200) { //   ,    delete this.broker[brokerKey]; //  this.storage.add('broker', this.broker); } else { //   ;-) console.log(response.data) } }) .catch(error => { /*           ,       */ }); }; //   export module.exports = Broker; 


рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рд╕рдм рдХреБрдЫ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реЗрд╡ рдФрд░ рд░рд┐рдХрд╡рд░ рдХрд░реЗрдЧрд╛

Storage.js
 //  debug-   function Storage(debug) { if(debug === true) { this.debugMode = true; } this.storage = window.localStorage; }; // ,     Json      Storage.prototype.addObjectToStorage = function (key, object) { this.storage.setItem(key, JSON.stringify(object)); }; //    (,   ) Storage.prototype.addStringToStorage = function (key, value) { this.storage.setItem(key, value); }; //    Storage.prototype.get = function (key) { return this.storage.getItem(key); }; //    Json ,       Storage.prototype.getObject = function (key) { try { return JSON.parse(this.storage.getItem(key)); } catch (e) { this._debug(e); this._debug(key + ' = ' + this.storage.getItem(key)); return false; } }; /* ,     ,  ,        ,   Json      */ Storage.prototype.add = function (key, value) { try { if(typeof value === 'object') { this.addObjectToStorage(key, value); } else if (typeof value === 'string' || typeof value === 'number') { this.addStringToStorage(key, value); } else { //    this._debug('2 parameter does not belong to a known type') } return this.storage; } catch (e) { //    ,    ,    if (e === QUOTA_EXCEEDED_ERR) { this._debug('LocalStorage is exceeded the free space limit') } else { this._debug(e) } } }; //  Storage.prototype.clear = function () { try { this.storage.clear(); return true; } catch (e) { this._debug(e) return false; } }; //    Storage.prototype.delete = function(key) { try { this.storage.removeItem(key); return true; } catch (e) { this._debug(e) return false; } }; // ,      Storage.prototype._debug = function(error) { if(this.debugMode) { console.error(error); } return null; }; //   module.exports = Storage; 


рдЬрдм рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

рд╕рд╣реЗрдЬреЗрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
 //   Vue (methods) /*----*/ //      Storage   sendBroker(method, url, data) { let storage = new Storage(true); let broker = new Broker(storage, 'fundsControl'); broker.saveToStorage(method, url, data); }, //     fundsSave() { let url = '/pa/funds'; let method = ''; if(this.fundsFormType === 'create') { method = 'post'; } else if(this.fundsFormType === 'update') { method = 'put'; } else if(this.fundsFormType === 'delete') { method = 'delete'; } this.$store.commit('setPreloader', true); axios({ method: method, url: url, data: this.fundsFormData, }) .then(response=> { if(response.data.status == 200) { this.fundsFormShow = false; this.getFunds(); this.$store.commit('setPreloader', false); } else { this.$store.commit('AlertError', '    '); } }) //        .catch(error => { this.$store.commit('setAlert', { type: 'warning', status: true, message: '   . ,        ,   ' } ); this.fundsFormShow = false; this.$store.commit('setPreloader', false); //   ""  this.sendBroker(method, url, this.fundsFormData); console.error(error); }); }, 


рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
 //   Vue /*--*/ methods: { /*----*/ /*   ,    ,   ,      ,      */ brokerSendRun() { let storage = new Storage(true); let broker = new Broker(storage, 'fundsControl'); //,   -   if(broker.queueCount() > 0) { // ,    broker.run(); //   ,   this.$store.commit('setAlert', {type: 'info', status: true, message: '      -  , ,      '}); } } } /*---*/ /*     , ,   ,          ,     ,        */ mounted() { this.brokerSendRun(); } /*---*/ 


рдкреБрдирд╢реНрдЪ


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

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


All Articles