рд╢реБрджреНрдз рдЬреЗрдПрд╕ рдкрд░ рдЯрд┐рдиреА 30-рд▓рд╛рдЗрди рдЧреИрдЬреЗрдЯ рдХрдВрдЯреЗрдирд░

30 , 24 , 19 рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ 1 рд▓рд╛рдЗрди рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╢рд╛рдВрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рднреА рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рд╣рдмрд░ рдХреЗ рд╕реНрд╡рдЪреНрдЫ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдлреАрдХрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдореИрдВ рдПрдХ рдЖрдордВрддреНрд░рдг рдЪрд╛рд╣рддрд╛ рдерд╛ , рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдерд╛ ред

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

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

рдХрдВрдЯреЗрдирд░ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ:

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рдПрдХ рдЫреЛрдЯреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореБрдЭреЗ 100% рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред

рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдРрдк рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ 3 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ: addStorage, addValidator рдФрд░ addModuleред

addStorage

рдХрд┐рд╕реА рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдХрд╣реАрдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдареАрдХ рд╣реИ, рд▓рд┐рдЦреЛ

app.addStorage('option'); 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирдпрд╛ app.option () рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдХрд▓реНрдк рд╕рдореВрд╣ рд╕реЗ рд╕реНрдерд╛рдиреАрдпрд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ рд╡рд┐рд╢рд▓рд┐рд╕реНрдЯ # 2: рд╣рдо рдХрдЯрд▓реЗрдЯ рд╕реЗ рдордХреНрдЦрд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдореВрд╣ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ, рд╣рдо рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ)ред app.option () 2 рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо рдФрд░ рдЙрд╕рдХрд╛ рдореВрд▓реНрдпред рджреВрд╕рд░рд╛ рддрд░реНрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдпрджрд┐ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рдПрдЧреА; рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рдорд╛рди рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ред рд╣реБрдб рдХреЗ рддрд╣рдд app.option рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рд▓рд┐рдП JSON.stringify рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JSON.parseред

 app.option('foo', 'bar'); // localStorage['option.foo'] = 'bar' var a = app.option('foo'); // a = 'bar' //      app.option('foo', [1,2,3]); var a = app.option('foo'); // a = [1,2,3] app.option('foo', { bar: [1,2,3] }); var a = app.option('foo'); // a = { bar: [1,2,3] } 

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, addStorage рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ, рд╣рдо рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдпрд╕реНрдЯреЛрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 app.addStorage('whatever_you_want'); app.whatever_you_want('foo', 'bar'); 


addValidator

рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рдЬреЛрдбрд╝рддреА рд╣реИред рдпрд╣ 3 рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдореВрд╣ рдХрд╛ рдирд╛рдо, рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо, рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХрд╛рд░реНрдп рд╕реНрд╡рдпрдВред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рди рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк app.option ('foo') рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ foo рдХреЗ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 var a = localStorage['option.foo']; // a = undefined var a = app.option('foo'); // a = undefined app.addValidator('option', 'foo', function(foo) { return typeof foo === 'undefined' ? 'bar' : foo; }); var a = localStorage['option.foo']; // a = undefined var a = app.option('foo'); // a = 'bar' 

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

addModule

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

 app.addModule('foo', { bar: function() { // do something... } }); //     bar app.foo.bar(); 

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдерд╛, рддреЛ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрд░реНрде рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХреБрдЫ рдЬрд╛рджреВ рдЬреЛрдбрд╝реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдЗрдирд┐рдЯ () рд╡рд┐рдзрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рддрдм рдПрдХ рдореЙрдбреНрдпреВрд▓ (рдЬреИрд╕реЗ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛) рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдореЗрдВ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддрд░реНрдХ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдлреВ рдореЙрдбреНрдпреВрд▓ рдЦреБрдж рдРрдк рдХрдВрдЯреЗрдирд░ рдХреА рдПрдХ рдорд┐рдиреА рдХреЙрдкреА рдмрди рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рдХрд╛рд░реНрдп addStorage, addValidator рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ addModule рдЗрд╕рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ! рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдЗрдП рдЖрд╡реЗрджрди рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

 //         trans() -   app.addModule('i18n', { //      data: {}, //   init: function() { // -    ,    option   i18n, (!)      ,     this.addStorage('option'); //   , ..       this.addValidator('option', 'locale', function(locale) { return typeof locale === 'undefined' ? 'ru' : locale; }); document.write('<script src="/path/to/i18n/' + this.option('locale') + '.js"><\/script>'); this.data = data_from_file; $(document).ready(function() { $('.i18n').each(function() { $(this).text(this.trans($(this).attr('data-i18n'))); }); }); }, trans: function(field) { return typeof this.data[field] === 'undefined' ? field : this.data[field]; } }); 

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХред this.addStorage('option'); ред рдпрд╣рд╛рдВ рд╣рдордиреЗ i18n рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмрдирд╛рдпрд╛ред рдпрд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рдпрд╣ i18n рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрд╡реЗрджрди рдореЗрдВ, рдЗрд╕ рд╕рдореВрд╣ рддрдХ рдкрд╣реБрдВрдЪ app.i18n.option('foo'); рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ app.i18n.option('foo'); ред рдпрд╣ рд╕рдм рдлрд┐рд░ рд╕реЗ рд╡рд┐рд╢рд▓рд┐рд╕реНрдЯ # 2 рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реИред

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

рддреНрдпрд╛рдЧ

рдореИрдВ рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреА рдХрд┐рд╕реА рднреА 100% рдЬрд░реВрд░рдд рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХрд╛ рдвреЛрдВрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ред рдХрд┐рд╕реА рднреА рд░рдЪрдирд╛рддреНрдордХ рддрд░реНрдХ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХреБрдЫ рд░реЛрдЪрдХ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реЗрдЧреАред

рдХрдВрдЯреЗрдирд░ рдХреЛрдб рдХрд╛ рдкреВрд░рд╛ рдкрд╛рда

 var app = { validator: {}, addStorage: function(name) { this[name] = function(key, value) { var local_storage_name = typeof this.name === 'undefined' ? name : this.name + '.' + name; if (typeof value === 'undefined') { var param = typeof localStorage[local_storage_name + '.' + key] !== 'undefined' ? JSON.parse(localStorage[local_storage_name + '.' + key]) : null; if (typeof this.validator[name + '.' + key] !== 'undefined') { param = this.validator[name + '.' + key](param); } return param; } localStorage[local_storage_name + '.' + key] = JSON.stringify(value); }; }, addValidator: function(storage, name, callback) { this.validator[storage + '.' + name] = callback; }, addModule: function(name, object) { object.name = name; object.validator = {}; object.addStorage = this.addStorage; object.addValidator = this.addValidator; object.addModule = this.addModule; this[name] = object; if (typeof this[name].init !== 'undefined') { this[name].init(); } } }; 

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


All Articles