Comments 30
блин, все дружно любят таймауты, у меня firefox на лаптопе просыпается раз 200-300 в секунду если открыто несколько табов. Вроде бы не проблема, но современные процессоры думают иначе, когда их выдергивают из сна - итог батарейка садится на час раньше
с помощью флеша или JS можно отследить активно ли окно/вкладка и саспендить таймауты.
как?
http://vpleer.ru/index.php?q=snoop+dogg+…
умеет понимать активна вкладка или нет. В случае если неактивна, он доигрывает песню и останавливается, как только переключаешься на нее, он продолжает играть. Я еще не разбирался в этом, но подозреваю, что это делает флеш.
умеет понимать активна вкладка или нет. В случае если неактивна, он доигрывает песню и останавливается, как только переключаешься на нее, он продолжает играть. Я еще не разбирался в этом, но подозреваю, что это делает флеш.
спасибки
>mainLoop вызывается рекурсивно используя javascript функцию setTimeout
мда.. в код не смотрел, но что-то мне подсказывает, что автор хотел сказать переодически, а не рекурсивно.
Два идущих подряд списка начинаются с практически одинаковых фраз: "восхитителен как минимум по двум причинам" и "восхититься работой кода по следующим причинам" - причём второй список "восхищений" покрывает первый, читается как-то не очень.
Заметка интересна, но над стилем и содержанием надо было ещё поработать перед публикацией, куда торопиться, это же не горячая новость.
мда.. в код не смотрел, но что-то мне подсказывает, что автор хотел сказать переодически, а не рекурсивно.
Два идущих подряд списка начинаются с практически одинаковых фраз: "восхитителен как минимум по двум причинам" и "восхититься работой кода по следующим причинам" - причём второй список "восхищений" покрывает первый, читается как-то не очень.
Заметка интересна, но над стилем и содержанием надо было ещё поработать перед публикацией, куда торопиться, это же не горячая новость.
обфускация
> обсфуцированный
обфусцированный
обфусцированный
в свое время это было безусловно круто, но, блин, статья 2004 года
сейчас это почти банальности
сейчас это почти банальности
А помоему, даже очень хорошо что всё так разжёванно подробно, просто, популярно.
Супер! Настоящее расследование.
Спасибо за статью.
Кстати, до недавнего времени использовал jquery autocomplete.
Кстати, до недавнего времени использовал jquery autocomplete.
в избранное, однозначно
Обязательно так засирать объект window?
Это что нельзя засунуть в какой-нибудь namespace?
var w="";
var pa=false;
var _oldInputFieldValue=""; // inputField value (set during call to google...)...(was ta)
var da=false;
var _currentInputFieldValue=""; // also inputField value (was g)
var G="";
var _eventKeycode=""; // event keycode... (was m)
var _highlightedSuggestionIndex=-1; // currently hightlighted suggestion index (was j)
var _highlightedSuggestionDiv=null; // currently highlisted suggestion div... (was h)
var _completeDivRows=-1; // completeDiv rows at time of keypress... (was Z)
var _completeDivDivList=null; // completeDiv div list at time of keypress (was za)
var _completeDivRows2=5; // was Ca... initially 5? not sure difference between this and _completeDivRows...
var q="";
var _divTag="div"; // Was Lb
var _spanTag="span"; // Was Bb
var _documentForm=null; // Form on html page... (was la...)
var _inputField=null; // Input field on form... (was a)
var _completeDiv=null; // document.completeDiv (was b)
var _submitButton=null; // submit button (was Xa)
var mb=null;
var X=null;
var _enString=null; // This becomes the string "en" (was ha)
var _cursorUpDownPressed=false; // Was ra...
var kc=null;
var hc=null;
var _resultCache=new Object(); // This is a cache of results from google... (was Ua)
var ca=1;
var Aa=1;
var Y=false;
var _lastKeyCode=-1; // Gets set on keyDown... Was na...
var Va=(new Date()).getTime();
var _hasXMLHTTP=false; // Gets set to true if XMLHTTP Supported (was Q)
var _xmlHttp=null; // This is the XMLHttp Object... (was k)
var _completeSearchEnString=null; // Gets set to "/complete/search/?hl=en" (was sa)
var _completeSearchString=null; // Gets set to "/complete/search" ... (was E)
var B=null;
var aa=null;
var Ba=false;
var Ka=false;
var p=60;
var _searchString=null; // Gets set to "search" in installAC (was ia)
var ya=null;
var _timeoutAdjustment=0; // timeout adjustment... (was W)... gets adjusted over time...
[имена функций перечислять не стал]
Полезность этих (и не только) переменных сложно недооценить:
var _divTag="div";
var _spanTag="span";
Стиль и подход коментировать лучше вообще не буду.
Это что нельзя засунуть в какой-нибудь namespace?
var w="";
var pa=false;
var _oldInputFieldValue=""; // inputField value (set during call to google...)...(was ta)
var da=false;
var _currentInputFieldValue=""; // also inputField value (was g)
var G="";
var _eventKeycode=""; // event keycode... (was m)
var _highlightedSuggestionIndex=-1; // currently hightlighted suggestion index (was j)
var _highlightedSuggestionDiv=null; // currently highlisted suggestion div... (was h)
var _completeDivRows=-1; // completeDiv rows at time of keypress... (was Z)
var _completeDivDivList=null; // completeDiv div list at time of keypress (was za)
var _completeDivRows2=5; // was Ca... initially 5? not sure difference between this and _completeDivRows...
var q="";
var _divTag="div"; // Was Lb
var _spanTag="span"; // Was Bb
var _documentForm=null; // Form on html page... (was la...)
var _inputField=null; // Input field on form... (was a)
var _completeDiv=null; // document.completeDiv (was b)
var _submitButton=null; // submit button (was Xa)
var mb=null;
var X=null;
var _enString=null; // This becomes the string "en" (was ha)
var _cursorUpDownPressed=false; // Was ra...
var kc=null;
var hc=null;
var _resultCache=new Object(); // This is a cache of results from google... (was Ua)
var ca=1;
var Aa=1;
var Y=false;
var _lastKeyCode=-1; // Gets set on keyDown... Was na...
var Va=(new Date()).getTime();
var _hasXMLHTTP=false; // Gets set to true if XMLHTTP Supported (was Q)
var _xmlHttp=null; // This is the XMLHttp Object... (was k)
var _completeSearchEnString=null; // Gets set to "/complete/search/?hl=en" (was sa)
var _completeSearchString=null; // Gets set to "/complete/search" ... (was E)
var B=null;
var aa=null;
var Ba=false;
var Ka=false;
var p=60;
var _searchString=null; // Gets set to "search" in installAC (was ia)
var ya=null;
var _timeoutAdjustment=0; // timeout adjustment... (was W)... gets adjusted over time...
[имена функций перечислять не стал]
Полезность этих (и не только) переменных сложно недооценить:
var _divTag="div";
var _spanTag="span";
Стиль и подход коментировать лучше вообще не буду.
может у них обфускатор такой умный?
а вообще, он выполняет свою работу, а это главное
а вообще, он выполняет свою работу, а это главное
на волшебном слове "хуй" suggest ломается и показывает слова начинающиеся на equ
Стиль написания скрипта адски-ужасен. Как-то все через задницу сделано...
Sign up to leave a comment.
Google Suggest – взгляд изнутри…