{"id":176273,"date":"2013-04-11T00:45:03","date_gmt":"2013-04-10T20:45:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=176273"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=176273","title":{"rendered":"<span class=\"post_title\">&#8216;\u0427\u0438\u0441\u0442\u044b\u0439&#8217; JavaScript: \u00ab\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435\u00bb<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<i>\u0418\u043d\u043e\u0433\u0434\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0432\u043e\u0435\u0439 \u0442\u0443\u043f\u043e\u0441\u0442\u044c\u044e \u0438 \u043d\u0435\u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0442\u0430\u043a, \u043a\u0430\u043a \u043e\u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0441\u0442\u044c\u2026 ( \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 )<\/i><\/p>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u0430\u043d\u043d\u044b\u0439 \u044d\u043f\u0438\u0433\u0440\u0430\u0444 \u0438\u043c\u0435\u0435\u0442 \u043a\u043e \u043c\u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435, \u0447\u0435\u043c \u044f \u0434\u0443\u043c\u0430\u044e, \u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u0443\u0447\u0448\u0435\u0435\u2026<\/p>\n<p>  \u041c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 <a href=\"http:\/\/habrahabr.ru\/post\/176207\/\">\u043f\u043e\u0441\u0442<\/a> \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043d\u0435 \u043e\u0447\u0435\u043d\u044c, \u043d\u043e \u0443 \u043b\u044e\u0431\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u044d\u0442\u0438\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441\u043e \u043c\u043d\u043e\u0439 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435. \u0414\u0435\u043b\u043e \u0431\u044b\u043b\u043e \u0434\u0430\u0432\u043d\u043e, \u043a\u0430\u043a-\u0442\u043e \u043f\u0440\u0438\u0430\u0441\u0430\u043d\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u043a \u043d\u043e\u0432\u043e\u043c\u0443 web-\u043f\u0440\u043e\u0435\u043a\u0442\u0443, \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u043d\u0435 \u0438\u043c\u0435\u043b \u043d\u0438 \u043c\u0430\u043b\u0435\u0439\u0448\u0435\u0433\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f. \u0422\u0438\u043c\u043b\u0438\u0434 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0437\u0430\u043b\u0438\u043b \u0432 svn <b>php<\/b> \u0438 <b>js<\/b> framework&#8217;\u0438.<br \/>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 JS \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d <b>Mootools<\/b> 1.2.2 \u0438\u043b\u0438 1.2.4, \u0430 \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u043d\u0435\u043c\u0443 Jx UI Library \u0432 \u0432\u0438\u0434\u0435 <b>JxLib<\/b>. \u0412\u0441\u0435 \u0448\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u043b \u043a \u0441\u0432\u043e\u0435\u043c\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e, \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432 \u0440\u043e\u0441\u043b\u0438 \u0438 \u0442\u0434. \u0418 \u0432\u043e\u0442, \u0432 \u043e\u0434\u0438\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043f\u0440\u0438\u0434\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u0431\u0430\u0433, \u0432 \u043a\u043e\u0440\u043e\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0430 \u0442\u043e\u043c \u0447\u0442\u043e \u0432 IE9 (\u0430 \u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e-\u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0448\u0435\u043b) \u0430\u0434\u043c\u0438\u043d\u043a\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u0430\u043c \u043d\u0430\u0447\u0430\u043b \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c Mootools 1.2.x \u2014 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 IE9, \u0430 \u0432\u043e\u0442 \u0432 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 over 1.3.x \u2014 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043b\u0435\u0442\u0430\u0435\u0442. \u041d\u0443, \u0434\u043e\u043b\u0433\u043e \u043d\u0435 \u0434\u0443\u043c\u0430\u044f, \u043a\u0430\u0447\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0441\u0435\u0433\u043e \u0447\u0443\u0434\u0430 \u0438 \u0441\u0442\u0430\u0432\u0438\u043c. \u0420\u0430\u0434\u043e\u0432\u0430\u0442\u0441\u044f \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0435 \u0434\u043e\u043b\u0433\u043e \u2014 \u043d\u0430\u0447\u0430\u043b\u0438 \u0432\u044b\u043b\u0430\u0437\u0438\u0442\u044c \u0431\u0430\u0433\u0438 \u0432 <b>JxLib<\/b>. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 &#8216;\u0437\u0430\u0433\u043b\u043e\u0445&#8217;, \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 <b>Mootools 1.2.x<\/b>. \u041c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u043e\u0448\u043b\u043e \u0441 \u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043d\u043e \u0442\u043e\u0442 <s>\u0433\u043e\u0432\u043d\u043e<\/s>\u043a\u043e\u0434, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0437\u0430\u043b\u0430\u0442\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0431\u0430\u0433, \u043d\u0430\u0434\u043b\u043e\u043c\u0430\u043b \u043c\u043e\u044e \u0432\u0435\u0440\u0443 \u0432 Mootools \u0438 \u0435\u043c\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0432\u0435\u0449\u0438. \u0422\u0435\u043f\u0435\u0440\u044c, \u044f \u0434\u0443\u043c\u0430\u044e, \u0441\u0442\u0430\u043b\u043e \u044f\u0441\u043d\u043e, \u043e\u0442\u043a\u0443\u0434\u0430 \u0442\u0430\u043a\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a JS \u043b\u0438\u0431\u0430\u043c.<\/p>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c (\u043f\u043e\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a, \u0430 \u043d\u0435 \u0438\u043d\u0430\u0447\u0435) \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>  1)<br \/>   \u0421onsole.log \u2014 \u0432\u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b, \u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0433\u0430\u043b \u043c\u043d\u043e\u0433\u043e\u0435 \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u044d\u0442\u043e. \u042f \u0432 \u043a\u0443\u0440\u0441\u0435 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043e\u043d (console.log) \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043d\u043e \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 \u044f \u044d\u0442\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f. \u041c\u043d\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0430 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c _d() \u0440\u0430\u0434\u0438 \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u043c\u043e\u0449\u044c \u0441onsole.log \u0440\u0430\u0437 \u0432 \u043c\u0435\u0441\u044f\u0446, \u2014 \u043d\u0435\u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e (\u043f\u0440\u043e\u0449\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0442\u043d\u044b\u0435 11 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 `\u0441onsole.log`).<\/p>\n<p>  2) <\/p>\n<blockquote><p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f addEvent \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 _d.<\/p><\/blockquote>\n<p> \u2014 \u044f \u0432 \u043a\u0443\u0440\u0441\u0435 \u044d\u0442\u043e\u0433\u043e, \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e, \u0438\u0431\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 DOM \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u044e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435, \u043d\u043e \u0432\u044b \u043c\u0435\u043d\u044f \u043c\u0435\u043d\u044f \u0443\u0431\u0435\u0434\u0438\u043b\u0438 \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u044e return false.<\/p>\n<p>  3) <\/p>\n<blockquote><p>\u0417\u0430\u0433\u0440\u044f\u0437\u043d\u0435\u043d\u0438\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u2014 \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e\u0439 \u0442\u043e\u043d.<\/p><\/blockquote>\n<p> \u2014 \u0442\u0443\u0442 \u0432\u044b \u043f\u0440\u0430\u0432\u044b, \u043d\u043e \u043a\u0440\u043e\u043c\u0435 <b>readyList = [];<\/b> \u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0433\u0443 \u043d\u0430\u0439\u0442\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \ud83d\ude42<\/p>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436, \u044f \u0434\u0443\u043c\u0430\u044e \u043f\u043e\u0440\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0445\u043e\u043b\u0438\u0432\u0430\u0440\u044b \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u043f\u0430\u0440\u0442\u0438\u0438 JS \u043a\u043e\u0434\u0430.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<pre><code class=\"javascript\">    \/\/ \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043a\u0430\u043a\u0438\u0435 \u0433\u0443\u0440\u0443 \u0441\u0438\u0434\u044f\u0442 \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 - \u043f\u0435\u0440\u0432\u044b\u0435 3 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0438\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0430\u043c\u0438 \u0437\u0430 \u0441\u0435\u0431\u044f \u0433\u043e\u0432\u043e\u0440\u044f\u0442) \u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0431\u0435\u0437 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432     \/**      * Function insert DOM element before some element      *      * @version 2012-11-06      * @param   Object  new_element      * @param   Object  targetElement      * @return  void      *\/     function insertBefore(new_element, targetElement)     {         targetElement.parentNode.insertBefore(new_element, targetElement);     }       \/**      * Function insert DOM element after some element      *      * @version 2012-11-06      * @param   Object  new_element      * @param   Object  targetElement      * @return  void      *\/     function insertAfter(new_element, targetElement)     {         var parent = targetElement.parentNode;          \/\/if the parents lastchild is the targetElement...         if(parent.lastchild == targetElement)             parent.appendChild(new_element);         else             parent.insertBefore(new_element, targetElement.nextSibling);     }       \/**      * Function make clone of income object      *      * @version 2012-11-07      * @param   Object  obj      * @return  Object      *\/     function clone(obj)     {         if(obj == null || typeof(obj) != 'object')             return obj;          var temp = {};         for(var key in obj)             temp[key] = clone(obj[key]);          return temp;     }       \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0435\u0440\u043d\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 DOM \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0443\u0437\u043b\u0435, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442     \/**      * Function return next element in dom object      *      * @version 2013-01-08      * @param   Object  obj      * @return  Object      *\/     function getNext(obj)     {         obj = obj.nextSibling;          if(!obj)             return false;          while(obj.nodeType != 1){             obj = obj.nextSibling;              if(!obj)                 return false;         }          return obj;     }       \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0435\u0440\u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 DOM \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0443\u0437\u043b\u0435, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442     \/**      * Function return previous element in dom object      *      * @version 2013-02-13      * @param   Object  obj      * @return  Object      *\/     function getPrevious(obj)     {         obj = obj.previousSibling;          if(!obj)             return false;          while(obj.nodeType != 1){             obj = obj.previousSibling;              if(!obj)                 return false;         }          return obj;     }        \/\/ \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 2 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 - \u044d\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0447\u0442\u0435\u043d\u0438\u0435 Cookies. C \u043d\u0438\u043c\u0438, \u044f \u0434\u0443\u043c\u0430\u044e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442     \/**      * Function new Cookies      *      * @version 2013-03-26      * @param   string name      * @param   string value      * @param   string expires      * @param   string path      * @return  void      *\/     function setCookies(name, value, expires, path)     {         if(!name || !value)             return 0;          if(!expires){             expires =  new Date();             expires.setTime(expires.getTime() + (1000 * 86400 * 365)); \/\/save 1 year         }          if(!path)             path = '\/';          \/\/ set Cookies         document.cookie = name+'='+escape(value)+'; expires='+expires.toGMTString()+'; path='+path;     }       \/**      * Function return Cookies value by name      *      * @version 2013-03-26      * @param   string name      * @return  void      *\/     function getCookies(name)     {         var results = document.cookie.match ( '(^|;) ?' + name + '=([^;]*)(;|$)' );          if ( results )             return ( unescape ( results[2] ) );         else             return null;     }         \/\/ \u0410 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f     \/\/ \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e Ajax(params), \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u043a \u043d\u0435\u0439 prototype     \/**      * Ajax object      *      * Send request by post\/get to some url      *      * @version 2013-02-13      * @param   Object  params      * @return  Object      *\/     window.Ajax = function(params)     {         \/\/ \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e         this.options = {             \/\/ default url             url: '',              \/\/ default method             method: 'get',              \/\/ Is synchronous request?             async: true,              \/\/ in seconds              timeout: 10000,              \/\/ callback function, in default - empty function             onComplete: function(){}         };          \/\/ set config params         this.setConfig(params);          \/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043a\u0440\u043e\u0441\u0441\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0439 XMLHttpRequest \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b         \/\/ initialize         this.init(params);     };      \/**      * Pablic methods      *\/     window.Ajax.prototype = {          \/**          * some internal params          *\/         xml_http_request: null,         timeout: null,         \/\/ json|xml|text         response:'json',          \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b ajax \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u044b \u0431\u044b\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b         \/**          * configure functionality          *\/         setConfig: function(opt)         {             \/\/ set url             if(opt.url != undefined)                 this.options.url = opt.url;              \/\/ set method             if(opt.method != undefined)                 this.options.method = opt.method;              \/\/ set asynchronus param             if(opt.async != undefined)                 this.options.async = opt.async;              \/\/ set timeout             if(opt.timeout != undefined)                 this.options.timeout = opt.timeout;              \/\/ set callback functions             if((opt.onComplete != undefined) && (typeof(opt.onComplete) == 'function'))                 this.options.onComplete = opt.onComplete;         },          \/**          * Initialize XMLHTTPRequest          *\/         init: function()         {             \/\/ \u043a\u0440\u043e\u0441\u0441\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 XMLHttpRequest             \/\/ Cross-browser compatibility for browsers             if (typeof XMLHttpRequest != 'undefined') {                 this.xml_http_request = new XMLHttpRequest();             }             else{                 try {                     this.xml_http_request = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);                 }                 catch (e) {                     try {                         this.xml_http_request = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);                     } catch (E) {                         alert('Your brouser don\\'t support Ajax technology. Please download real browser :)');                     }                 }             }              var self_ = this;              \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 (post\/get), url, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439\/\u043d\u0435\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441             \/\/ open XMLHttpRequest             this.xml_http_request.open(self_.options.method, self_.options.url, self_.options.async);               \/** \u0412\u0435\u0448\u0430\u0435\u043c callback \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e              *              *   \u0421\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 readyState \u0442\u0430\u043a\u043e\u0439:               *   0 - Unitialized              *   1 - Loading              *   2 - Loaded              *   3 - Interactive              *   4 - Complete              *   \u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f 0-2 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.              *              * self_.xml_http_request.status - \u043a\u043e\u0434 \u043e\u0442\u0432\u0435\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (200, 404 \u0438 \u0442\u0434)              *\/             \/\/ set callback function for XMLHttpRequest             this.xml_http_request.onreadystatechange = function(){                 if((self_.xml_http_request.readyState == 4) && (self_.xml_http_request.status &gt; 0)){                       \/\/ \u043e\u0442\u043c\u0435\u043d\u0430 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u0430 Ajax \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u043d\u0438\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u044f)                     \/\/ delete timeout                     clearTimeout(self_.timeout);                      \/\/ \u0432 \u0437\u0430\u0432\u0438\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043e\u0442\u0432\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430                     \/\/ JSON.parse - \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u044b\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 JSON  (\u0441\u0442\u0430\u0440\u044b\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b - bye-bye)                     if(self_.response == 'json')                         var response = JSON.parse(self_.xml_http_request.responseText);                     else{                         if(self_.response == 'xml')                             var response = self_.xml_http_request.responseXML;                         else                             var response = self_.xml_http_request.responseText;                     }                     \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432                     self_.options.onComplete(response);                 }             }         },           \/\/ \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043d\u0443\u0436\u0435\u043d \u0432 \u043e\u0447\u0435\u043d\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430         \/**          * Set some headers if need          *\/         setRequestHeader: function(name, value)         {             this.xml_http_request.setRequestHeader(name, value);         },           \/\/ \u041e\u0442\u0441\u044b\u043b\u0430\u0435\u043c Ajax \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440         \/**          * Send request          *\/         send: function(params)         {             this.xml_http_request.send(params);              var self_ = this;              \/\/ \u043f\u0440\u043e \u044d\u0442\u043e \u044f \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0440\u0430\u043d\u0435\u0435, \u0435\u0441\u043b\u0438 \u0432\u0430\u0441 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e\u0432\u0438\u0441 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0430\u043a\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b - \u043e\u0431\u0440\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e             \/\/ \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e - 10 \u0441\u0435\u043a\u0443\u043d\u0434 \u0436\u0434\u0435\u043c, \u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u0438 \u0431\u043e\u043b\u044c\u0448\u0435             \/\/ set timeout need for abort request             this.timeout = setTimeout( function(){ self_.xml_http_request.abort(); }, this.options.timeout);         },           \/\/ \u0414\u0430\u043d\u043d\u0430\u044f \u0444\u0438\u0448\u043a\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438 \u0436\u0438\u0432\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u0435 (\u043a\u0430\u043a \u0443 \u0445\u0430\u0431\u0440\u0430 \u0438\u043b\u0438 \u0433\u0443\u0433\u043b\u0430 :) )         \/**          * Abort request          *\/         abort: function()         {             this.xml_http_request.abort();         }     }        \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Ajax():      new Ajax({         url: '\/index.php',         timeout: 20000,         method: 'post',         onComplete: function(data){ alert(data);}     }).send('qwerty=123');   <\/code><\/pre>\n<p>  PS. \u041a\u0430\u043a \u0438 \u043e\u0431\u0435\u0449\u0430\u043b, <a href=\"http:\/\/timing.katran.by\/files\/lib.zip\">\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438<\/a>. \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u043b\u044e\u0434\u0438 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u043b\u0438 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u0439 JavaScript \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043b\u0430 \u043d\u0430 \u0441\u0432\u0435\u0442\u043b\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u0438\u043b\u044b (\u043f\u0435\u0447\u0435\u043d\u044c\u043a\u0438 \u0442\u0443\u0442 \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \ud83d\ude42 ).    \t \t\t   \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/176273\/\"> http:\/\/habrahabr.ru\/post\/176273\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<i>\u0418\u043d\u043e\u0433\u0434\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0432\u043e\u0435\u0439 \u0442\u0443\u043f\u043e\u0441\u0442\u044c\u044e \u0438 \u043d\u0435\u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0442\u0430\u043a, \u043a\u0430\u043a \u043e\u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0441\u0442\u044c\u2026 ( \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 )<\/i><\/p>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u0430\u043d\u043d\u044b\u0439 \u044d\u043f\u0438\u0433\u0440\u0430\u0444 \u0438\u043c\u0435\u0435\u0442 \u043a\u043e \u043c\u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435, \u0447\u0435\u043c \u044f \u0434\u0443\u043c\u0430\u044e, \u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u0443\u0447\u0448\u0435\u0435\u2026<\/p>\n<p>  \u041c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 <a href=\"http:\/\/habrahabr.ru\/post\/176207\/\">\u043f\u043e\u0441\u0442<\/a> \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043d\u0435 \u043e\u0447\u0435\u043d\u044c, \u043d\u043e \u0443 \u043b\u044e\u0431\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u044d\u0442\u0438\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441\u043e \u043c\u043d\u043e\u0439 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435. \u0414\u0435\u043b\u043e \u0431\u044b\u043b\u043e \u0434\u0430\u0432\u043d\u043e, \u043a\u0430\u043a-\u0442\u043e \u043f\u0440\u0438\u0430\u0441\u0430\u043d\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u043a \u043d\u043e\u0432\u043e\u043c\u0443 web-\u043f\u0440\u043e\u0435\u043a\u0442\u0443, \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u043d\u0435 \u0438\u043c\u0435\u043b \u043d\u0438 \u043c\u0430\u043b\u0435\u0439\u0448\u0435\u0433\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f. \u0422\u0438\u043c\u043b\u0438\u0434 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0437\u0430\u043b\u0438\u043b \u0432 svn <b>php<\/b> \u0438 <b>js<\/b> framework&#8217;\u0438.<br \/>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 JS \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d <b>Mootools<\/b> 1.2.2 \u0438\u043b\u0438 1.2.4, \u0430 \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u043d\u0435\u043c\u0443 Jx UI Library \u0432 \u0432\u0438\u0434\u0435 <b>JxLib<\/b>. \u0412\u0441\u0435 \u0448\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u043b \u043a \u0441\u0432\u043e\u0435\u043c\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e, \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432 \u0440\u043e\u0441\u043b\u0438 \u0438 \u0442\u0434. \u0418 \u0432\u043e\u0442, \u0432 \u043e\u0434\u0438\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043f\u0440\u0438\u0434\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u0431\u0430\u0433, \u0432 \u043a\u043e\u0440\u043e\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0430 \u0442\u043e\u043c \u0447\u0442\u043e \u0432 IE9 (\u0430 \u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e-\u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0448\u0435\u043b) \u0430\u0434\u043c\u0438\u043d\u043a\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u0430\u043c \u043d\u0430\u0447\u0430\u043b \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c Mootools 1.2.x \u2014 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 IE9, \u0430 \u0432\u043e\u0442 \u0432 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 over 1.3.x \u2014 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043b\u0435\u0442\u0430\u0435\u0442. \u041d\u0443, \u0434\u043e\u043b\u0433\u043e \u043d\u0435 \u0434\u0443\u043c\u0430\u044f, \u043a\u0430\u0447\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0441\u0435\u0433\u043e \u0447\u0443\u0434\u0430 \u0438 \u0441\u0442\u0430\u0432\u0438\u043c. \u0420\u0430\u0434\u043e\u0432\u0430\u0442\u0441\u044f \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0435 \u0434\u043e\u043b\u0433\u043e \u2014 \u043d\u0430\u0447\u0430\u043b\u0438 \u0432\u044b\u043b\u0430\u0437\u0438\u0442\u044c \u0431\u0430\u0433\u0438 \u0432 <b>JxLib<\/b>. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 &#8216;\u0437\u0430\u0433\u043b\u043e\u0445&#8217;, \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 <b>Mootools 1.2.x<\/b>. \u041c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u043e\u0448\u043b\u043e \u0441 \u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043d\u043e \u0442\u043e\u0442 <s>\u0433\u043e\u0432\u043d\u043e<\/s>\u043a\u043e\u0434, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0437\u0430\u043b\u0430\u0442\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0431\u0430\u0433, \u043d\u0430\u0434\u043b\u043e\u043c\u0430\u043b \u043c\u043e\u044e \u0432\u0435\u0440\u0443 \u0432 Mootools \u0438 \u0435\u043c\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0432\u0435\u0449\u0438. \u0422\u0435\u043f\u0435\u0440\u044c, \u044f \u0434\u0443\u043c\u0430\u044e, \u0441\u0442\u0430\u043b\u043e \u044f\u0441\u043d\u043e, \u043e\u0442\u043a\u0443\u0434\u0430 \u0442\u0430\u043a\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a JS \u043b\u0438\u0431\u0430\u043c.<\/p>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c (\u043f\u043e\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a, \u0430 \u043d\u0435 \u0438\u043d\u0430\u0447\u0435) \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>  1)<br \/>   \u0421onsole.log \u2014 \u0432\u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b, \u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0433\u0430\u043b \u043c\u043d\u043e\u0433\u043e\u0435 \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u044d\u0442\u043e. \u042f \u0432 \u043a\u0443\u0440\u0441\u0435 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043e\u043d (console.log) \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u043d\u043e \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 \u044f \u044d\u0442\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f. \u041c\u043d\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0430 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c _d() \u0440\u0430\u0434\u0438 \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u043c\u043e\u0449\u044c \u0441onsole.log \u0440\u0430\u0437 \u0432 \u043c\u0435\u0441\u044f\u0446, \u2014 \u043d\u0435\u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e (\u043f\u0440\u043e\u0449\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0442\u043d\u044b\u0435 11 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 `\u0441onsole.log`).<\/p>\n<p>  2) <\/p>\n<blockquote><p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f addEvent \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 _d.<\/p><\/blockquote>\n<p> \u2014 \u044f \u0432 \u043a\u0443\u0440\u0441\u0435 \u044d\u0442\u043e\u0433\u043e, \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e, \u0438\u0431\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 DOM \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u044e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435, \u043d\u043e \u0432\u044b \u043c\u0435\u043d\u044f \u043c\u0435\u043d\u044f \u0443\u0431\u0435\u0434\u0438\u043b\u0438 \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u044e return false.<\/p>\n<p>  3) <\/p>\n<blockquote><p>\u0417\u0430\u0433\u0440\u044f\u0437\u043d\u0435\u043d\u0438\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u2014 \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e\u0439 \u0442\u043e\u043d.<\/p><\/blockquote>\n<p> \u2014 \u0442\u0443\u0442 \u0432\u044b \u043f\u0440\u0430\u0432\u044b, \u043d\u043e \u043a\u0440\u043e\u043c\u0435 <b>readyList = [];<\/b> \u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0433\u0443 \u043d\u0430\u0439\u0442\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \ud83d\ude42<\/p>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436, \u044f \u0434\u0443\u043c\u0430\u044e \u043f\u043e\u0440\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0445\u043e\u043b\u0438\u0432\u0430\u0440\u044b \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u043f\u0430\u0440\u0442\u0438\u0438 JS \u043a\u043e\u0434\u0430.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-176273","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/176273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=176273"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/176273\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=176273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=176273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=176273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}