рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдПрдВ

рдирдорд╕реНрдХрд╛рд░, рд╣рднреНрд░рд╡рдЪрдиреЗ-рдордХреЛрд╡рдбреА!

рдЖрдЬ рд╣рдо рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдореЗрдВ рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдбреИрд╢рдХреЛрдб рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

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

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

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

рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд┐рдЬреЗрдЯ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдмрд╣реБрдд рд╕рдорд╛рди) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2007 рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдиреНрдпреВрд░реЛрдореИрдЯрд┐рдХ рд╣реИрдмрд░рдбреИрд╢рд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдбрд╛рдЙрдирд▓реЛрдб рд▓рд┐рдВрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрд╕ рд▓реЗрдЦ рдореЗрдВ рдРрд╕реЗ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рдереЗред

рд╕рд╣реА рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдЗрди рдХрдорд┐рдпреЛрдВ рдХреЛ рдмрджрд▓реЗрдВред

рдПрдХ рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреИрд╢рдХреЛрдб рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреБрдЪреНрдЫ рд╣реИред

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

рдЕрдм, рд╣рдорд╛рд░реЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рдордиреЗ рдХреА рдУрд░ (рдХреЛрдб рдХреА рдПрдХ рднреА рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд┐рдирд╛!) рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ: рдХреБрдЫ рд▓реЗрдмрд▓ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдШрдЯрдХреЛрдВ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЦреЛрд▓реЗрдВ - рдмрдЯрди рдКрдкрд░реА рджрд╛рдИрдВ рдУрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА - рд╡рд┐рдЬреЗрдЯ рдкрд░ "рдЯреЗрдХреНрд╕реНрдЯ" рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЦреАрдВрдЪреЗрдВред рдЕрдм рдЦреЛрд▓реЛ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ (рд╢реАрд░реНрд╖ рджрд╛рдИрдВ рдУрд░ рдмрдЯрди рднреА) рдФрд░ рдЗрд╕рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░, рд░рдВрдЧ рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреА рдорджрдж рд╕реЗ, рд╣рдо рдЕрдкрдиреЗ рд╢рд┐рд▓рд╛рд▓реЗрдЦреЛрдВ рдХреЛ рд╕рд╛рд░реНрдердХ рдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ - рдХреЛрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдПред

рдкреАрдЫреЗ рдХреА рддрд░рдл рд╣рдо рдПрдХ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдФрд░ рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдлреЗрдВрдХреЗрдВрдЧреЗред рдЦреИрд░, рдФрд░ рдПрдХ рдФрд░ рддрд╕реНрд╡реАрд░ - рд╕реБрдВрджрд░рддрд╛ рдХреЗ рд▓рд┐рдПред рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ:



рдЦреИрд░, рдмреБрд░рд╛ рдирд╣реАрдВ, рд╣рдорд╛рд░рд╛ GUI рддреИрдпрд╛рд░ рд╣реИ! рд╣рдо рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВ Cmd+R рдФрд░ рдмрдЯрди рдкрд░ рдкреНрд░рд╣рд╛рд░ (i) рдФрд░ рдХрд┐рдпрд╛, рд╡рд┐рдЬреЗрдЯ flipping рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдПред

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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╣рдорд╛рд░реЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ "рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░" рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд░реЗрдВред рд╣рдо рд╣рдмреАрд░ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ , рдЙрдиреНрд╣реЗрдВ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рдордиреЗ рдХреА рддрд░рдл рдХрд░реНрдо рдФрд░ рд░реЗрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп .js рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╡реИрд░рд┐рдПрдмрд▓ updateTimer рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ, updateTimer startTimer startTimer(msec) рдФрд░ stopTimer() , рдЬреЛ рдЗрд╕ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╣рдо updateStats() рдлрд╝рдВрдХреНрд╢рди рднреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЯрд╛рдЗрдорд░ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 function startTimer(msec) { updateTimer = setTimeout("updateStats()", msec); } function stopTimer() { clearTimeout(updateTimer); } function updateStats() { alert("It works!"); startTimer(updateInterval); } 

show() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЯрд╛рдЗрдорд░ рд╢реБрд░реВ startTimer(5000) рдХреЙрд▓ startTimer(5000) , рдФрд░ hide() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреНрд░рдорд╢рдГ, stopTimer() рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рд╡рд┐рдЬреЗрдЯ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдбреИрд╢рдмреЛрд░реНрдб рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ)ред рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╡рд┐рдЬреЗрдЯ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (Cmd + Alt + 1) "рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!" рд╣рд░ 5 рд╕реЗрдХрдВрдб рдореЗрдВред

рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдХрд╡рд╛рд╕ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рдХрд░реНрдо рдФрд░ рд░реЗрдЯрд┐рдВрдЧ рдХреЛ рдЯрд╛рдЗрдорд░ рдкрд░ рдЦреАрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ! рдЗрд╕рд▓рд┐рдП updateStatus() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдПрдХ рдЕрд▓рд░реНрдЯ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо execStatsRequest() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ (рд╣реИрдмрд░ рдПрдкреАрдЖрдИ рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕реА рд╕рдордп рд╣рдо рдЕрдВрддрд░рд╛рд▓ рдмрдврд╝рд╛рдПрдВрдЧреЗ)ред

рдЕрдм рдпрд╣ habrahab API рдХреЗ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рд╣рдо рдирдП рдлрд╝рдВрдХреНрд╢рдВрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ - рдПрдХреНрдЬрд╝рд┐рд╕реНрдЯреЗрдиреНрд╕рдЯреНрд░реЗрд╕реЗрд╕реНрдЯ () рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд╕реНрдЯреИрдЯреНрд╕ рд░реЗрдЬрд╝рд┐рд╕реНрдЯреЗрд╕реНрдЯ (), рдЬреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдБ рд╣реИ рдХрд┐ рд╡реЗ рдореЗрд░реЗ рд╕рд╛рде рдХреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВ:
 function execStatsRequest() { if (userName().length > 0) { var Url = "http://habrahabr.ru/api/profile/" + userName() + "/"; alert("User: " + userName() + "\nURL: " + Url); xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = processStatsRequest; xmlHttp.overrideMimeType('text/xml'); xmlHttp.open("GET", Url, true); xmlHttp.send(); } else { resetStats(); } } function processStatsRequest() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { alert("xml is " + xmlHttp.responseXML); if (xmlHttp.responseXML == null) { resetStats(); } else { alert(xmlHttp.responseText); var error = xmlHttp.responseXML.getElementsByTagName("error")[0]; if (error != null) { alert("Some error occured!"); resetStats(); setLogin("<" + userName() + " not found>"); return; } var login = xmlHttp.responseXML.getElementsByTagName("login")[0].firstChild.nodeValue; var karma = xmlHttp.responseXML.getElementsByTagName("karma")[0].firstChild.nodeValue; var rating = xmlHttp.responseXML.getElementsByTagName("rating")[0].firstChild.nodeValue; var position = xmlHttp.responseXML.getElementsByTagName("ratingPosition")[0].firstChild.nodeValue; setLogin(login); setKarma(karma); setRating(rating); setPosition(position); } } } 

рдпрд╣рд╛рдВ рд╣рдо рдЕрдиреБрд░реЛрдз URL рдмрдирд╛рддреЗ рд╣реИрдВ, рдЯрд╛рдЗрдк XMLHttpRequest рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рд╣рдо GET рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рдЖрдкрдХреЛ MIME рдЯрд╛рдЗрдк "рдЯреЗрдХреНрд╕реНрдЯ / xml" рдХреЗ рд▓рд┐рдП рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдмрд░рд╛-рдПрдкреА рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ "рдЯреЗрдХреНрд╕реНрдЯ / html" рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ processStatsRequest() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣рдо XML рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рд╣рдо рдЗрд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ - рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

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

 function setLogin(login) { document.getElementById("userName").innerText = login; } 

resetStats() рдлрд╝рдВрдХреНрд╢рди рд╕рднреА рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдФрд░ setUserName () рдФрд░ userName () рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдЬреЗрдЯ рдХреЗ рдкреАрдЫреЗ рд╣реИрдмреНрд░реЛрд╕рд░ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдкрд░ рдПрдХ рдЖрд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ:

 function userName() { return document.getElementById("nameEdit").value; } function setUserName(name) { document.getElementById("nameEdit").value = name; } 

рдЦреИрд░, рд╡рд┐рдЬреЗрдЯ рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд╣реИред рд▓рдЧрднрдЧ рдХреНрдпреЛрдВ? рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЕрднреА рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рджрд░реНрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдлрд╝рдВрдХреНрд╢рди loadPrefs() рдФрд░ savePrefs() ред

 var preferenceKey = "habraUserName"; function loadPrefs() { var name = widget.preferenceForKey(widget.identifier + "-" + preferenceKey); alert(widget.identifier + "-" + preferenceKey); alert("name from preferences: " + name); if (name != null) setUserName(name); } function savePrefs() { widget.setPreferenceForKey(userName(), widget.identifier + "-" + preferenceKey); } 

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

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

рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдХреА рддрд░рдл рдЬрд╛рдХрд░, рд╣рдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЛ рдмреБрд▓рд╛рддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╢рд┐рд▓рд╛рд▓реЗрдЦреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд░реАрдХреНрд╖рдХ рдХреЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдорд╛рди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рд╢рд╛рдпрдж рдХреБрдВрдЬреА рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдПрдВрдЧреЗред рдпреЗ рдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ (рдЕрдВрдЧреНрд░реЗрдЬреА) рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдлрд╝рд╛рдЗрд▓ en.lproj/localizedStrings.js рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм рд░реВрд╕реА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЬреЛрдбрд╝реЗрдВред рд╡рд┐рдЬреЗрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП, рд░реВрд╕реА рднрд╛рд╖рд╛ рдЬреЛрдбрд╝реЗрдВ (рдмрд╛рдПрдВ рд╕реВрдЪреА рдореЗрдВ)ред рд╣рдо рдЗрд╕реЗ рдЪреБрдирддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рд╕рд╣реА рд╕реВрдЪреА рдореЗрдВ рд╣рдо рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрд░рдорд╢рдГ рдпреЗ рдорд╛рди, ru.lproj/localizedStrings.js рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдВрдЧреЗред

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

рдпрджрд┐ рдЖрдк рддреИрдпрд╛рд░ рд╡рд┐рдЬреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ: рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ ! рдбреИрд╢рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдЧрд┐рдердм рдкрд░ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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


All Articles