LiveReload рдПрдХ рдмрд╣реБрдд рд╣реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ

рдлреНрд▓рд╛рдИ рдкрд░ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП NodeJS / ExpressJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЖрдИрдкреИрдб рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреЗрдЬ рдХреЛ рдСрдЯреЛ-рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдиреЗ рд╕реЗ рдореИрдВ рднреНрд░рдорд┐рдд рд╣реЛ рдЧрдпрд╛ред
рдХрдЯреМрддреА рдХреЗ рддрд╣рдд - рдореЛрдмрд╛рдЗрд▓ рдЧреИрдЬреЗрдЯ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд▓рд╛рдЗрд╡ рджреГрд╢реНрдп рдмрдирд╛рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред

рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ, Node.js рдкрд░ LiveReload рд▓реЗрдЦ рдиреЗ рдореЗрд░реА рдорджрдж рдирд╣реАрдВ рдХреАред рдХрд┐рд╕ рдмрд╛рдд рд╕реЗ? рдпрд╣ рдЖрд╕рд╛рди рд╣реИ - рд╡рд╣рд╛рдБ рд▓реЛрдЧ рдордгрд┐-рдПрд╕ рдХреЗ рд╕рд╛рде рдЧреНрд░рдиреНрдЯреНрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдореИрдВ рд╕рд┐рд░реНрдл NodeJS / рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЖрдпрд╛ред рдореБрдЭреЗ рдЫреЛрдЯрд╛ рдордд рд╕рдордЭреЛ :)

рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?


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

рдорд▓реНрдЯреА-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЧреИрдЬреЗрдЯреНрд╕ рдХреЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ - рдореИрдХрдмреБрдХ рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЧрдП iPad рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рд╣рд╛рдВ, рдФрд░ рддрд╛рдХрд┐ рдЖрдкрдХреА рдЙрдВрдЧрд▓реА рдЖрдЗрдХрди рдореЗрдВ рди рдЧрд┐рд░реЗ ...

рдЯреИрдмрд▓реЗрдЯ рд╕реЗ рджреВрд╕рд░рд╛ рдореЙрдирд┐рдЯрд░? рдпрд╣ред


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

рд╣рдо рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред


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

рдареАрдХ рд╣реИ, рдЬрдм рдХрдорд╛рдВрдб-рдПрд╕ / Ctrl-S (рд╡реИрд╕реЗ, рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рддреЛ рд╕рд░реНрд╡рд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдФрд░ рдлрд┐рд░, рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд googlezh рдореБрдЭреЗ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдпрд╛ред

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

рдорд╣рд╛рди, рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рджреЛ рдкреВрд░реЗ рддрд╛рд▓реНрдЬрд╝рд╛ рдХреЗ рд╕рд╛рде, рдореИрдВ рдПрдХ рдЪрдорддреНрдХрд╛рд░ рдХреЛ рдЧрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрда рдЧрдпрд╛:

рд╣рдо рдПрдХ рд╢реБрджреНрдз рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЖрд╡реЗрджрди рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ:
$ express 

рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ:
 $ npm i 

рд╣рдо рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдбрд╛рд▓рддреЗ рд╣реИрдВ:
 $ npm i supervisor -g 

рдФрд░ рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ:
 $ npm i reload --save-dev 

рд╕рдм рдХреБрдЫ, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рддреИрдпрд╛рд░реА рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИред

рдЕрдм рдЖрдкрдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░рд┐рдХреНрдд рдЖрд╡реЗрджрди рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

/app.js:
 ... var reload = require('reload'); ... var server = http.createServer(app); reload(server, app); server.listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

/views/layout.jade:
 head script(src='/reload/reload.js'); 

.Jade рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕реБрдкрд░ рд╕реБрдкрд░рд╕рд░реНрд╡рд░ рдХреЛ рдЪрд▓рд╛рдПрдВ:
 $ supervisor -e jade app.js 

рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ "рдХрдВрдкреНрдпреВрдЯрд░" рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдареАрдХ рд╡рд╣реА рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рд╣рдо рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ : 3000 :
рдЫрд╡рд┐

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд▓рд╛рдЗрд╡ рд╕рдВрдЪрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ / рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ /index.jade рдХреЛ рдмрджрд▓реЗрдВ
 extends layout block content h1= title p Welcome to #{title} 

рдкрд░:
 extends layout block content h1= title h2 , ! p Welcome to #{title} 

рдФрд░ LiveReload рдирд╛рдордХ рд▓рд╛рдЗрд╡ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рдЫрд╡рд┐

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓рд╛рдирдд рд╣реИ!

Grabelek? рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ!


рдЬрд╢реНрди рдордирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдЧреИрдЬреЗрдЯ рдкрд░, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, iPad рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рд╣рдо рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ 0.0.0.0eps000 (NodeJS рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдорд╢реАрди рдХрд╛ IP рдкрддрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ), рд╣рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ:
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
рдЫрд╡рд┐

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдо h2, Habr рдХреЗ рдмрд┐рдирд╛, рдХреЛрдб / рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ /index.jade рдХреЛ рд╕реНрд░реЛрдд рдкрд░ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ! , рдЗрд╕реЗ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ ... рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
рдЫрд╡рд┐

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

рдЙрджрд╛рд╕реА рд╕реЗ рдЦреБрд╢реА рддрдХ ...


рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рдлреЗрдВрдХрдХрд░, рдЙрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдЙрдард╛рдХрд░, рдФрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдорд░рдореНрдордд рдирд╣реАрдВ рдХрд░рдиреЗ рдФрд░ рди рдЬрд╛рдиреЗ рдХреНрдпрд╛-рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдореИрдВрдиреЗ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рда рдХреЛ рдмрдЪрд╛рдпрд╛ рдФрд░ рджреЗрдЦрд╛ рдХрд┐ iPad рдкрд░, рдореЗрд░реЗ рд╕рдордп рдХреЗ рд╕рд╛рде, рдПрдХ рджреЗрд╢реА рдПрдирд┐рдореЗрдЯреЗрдб рд▓реЛрдбрд░ рдХреЛ рдПрдХ рдкрд▓ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЛрдбрд┐рдВрдЧ рдЖрдЗрдХрди рдЫреЛрдЯрд╛ рд╣реИ)ред
рдЕрд╣рд╛! рдпрд╣рд╛рдБ рддреБрдо рд╣реЛред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреБрдж рдХреЛ рднреА LiveForever рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЙрд╕реЗ рдХреБрдЫ рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ ...

рдореИрдВ / nod_modules / reload / lib / рдореЗрдВ рдкреБрдирдГ рд▓реЛрдб рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдЪрдврд╝ рдЧрдпрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рддреБрд░рдВрдд рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛, рдореЗрд░реЗ рд▓рд┐рдП рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ), рдФрд░ рдореИрдВ рд╡рд╣рд╛рдВ 4 рдлрд╛рдЗрд▓реЗрдВ рдЦреЛрджрддрд╛ рд╣реВрдВ:
reload.js, reload-client.js, reload-server.js, sockjs-0.3-min.jsред
рддреБрд░рдВрдд reload-client.js рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рджреЗрдЦреЛ, рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреА рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ, рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рд╣рдо рдорд╛рдирд╡ рдЬрд╛рддрд┐ рдХреА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╣рд▓ рдкрд╛рддреЗ рд╣реИрдВ:
 ;(function refresh () { var RLD_TIMEOUT = 300; var sock = new SockJS(window.location.origin + '/sockreload'); sock.onclose = function() { setTimeout(function() { window.location.reload(); },RLD_TIMEOUT); }; })(); 


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╕рдЬреНрдЬрдиреЛрдВ!


рдЬрд╛рд╣рд┐рд░ рд╣реИ , рдиреНрдпреВрдирддрдо рдореВрд▓реНрдп RLD_TIMEOUT = 700 рдиреЗ рдореБрдЭреЗ рдПрдХ рдмреЗрдЬрд╛рди LiveReload рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреА ;

рд╡рд╣ рд╕рдм рд╣реИред рдореИрдВ рд╕рдорд╛рдзрд╛рди рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реВрдВ, рд╕рдм рдХреБрдЫ рдореИрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╡реЗрдм рдЬрд╛рджреВ рд╕реЗ рджреВрд░ рд╣реИ, рдФрд░ рдЬрд░реВрд░рдд рд╣реИ - рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдореБрдЦреНрдп рдмрд╛рдд - рдмрд┐рдирд╛ рдкрд░реЗрд╢рд╛рдиреА рдФрд░ рдЕрдиреБрдирдп-рд╡рд┐рдирдп рдХреЗред

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


All Articles