Harc a türelmetlen felhasználóval
A Twitter a sírba visz. Az egy dolog, hogy folyton kijelentkeztet, de mióta telepakolták rohangáló szövegekkel a főoldalt, vagy fél percen át tölti a szkripteket, amik közül úgy tűnik a login panelé az utolsó. Így rákattintva a böngésző átdob a bejelentkező oldalra, ahol már nem tölti ki automatikusan, s írhatom be kézzel. Hogyan csinálhatná okosabban a csiripelde?
Ha teljesítménynövelésről esik szó, szinte kötelezően elhangzik a JavaScript hivatkozások forrás végére helyezése. Ezzel nincs is semmi gond, azonban ez azzal jár, hogy eseménykezelőink csak késéssel jutnak érvényre, a türelmetlen felhasználó pedig az alapértelmezett eseménnyel fog csak találkozni.
A fenti problematikára kíván megoldással szolgálni ClickCatcher elnevezéssel Robert Nyman natív JavaScript, David Billskog pedig jQuery alapon.
A kódot a <head>
-ben kell elhelyezni, betöltését követően elkapja az összes kattintást, és azokat, melyekhez saját eseménykezelőt kívánunk csatolni, várakoztatja egészen addig, míg az ezeket tartalmazó kód be nem töltődik, miután a szűrőt eltávolítja, és végül ismét kiváltja a kattintásokat a feltartóztatott elemeken.
- (function () {
- var QUEUE = {
- clicks: [],
- click_handler: function (evt) {
- if ($(evt.target).hasClass("guarded")) {
- QUEUE.clicks.push({
- evt: evt,
- target: evt.target
- });
- return false;
- }
- return true;
- }
- };
- $(document).bind("click", QUEUE.click_handler);
- $(document).ready(function () {
- setTimeout(function () {
- $(document).unbind("click", QUEUE.click_handler);
- for (var i = 0, il = QUEUE.clicks.length; i < il; i++) {
- $(QUEUE.clicks[i].target).click();
- }
- }, 0);
- });
- })();
Tömörsége miatt fent a jQuery megvalósítás olvasható, ennek természetesen megvan az a hátránya, hogy előtte a keretrendszert is be kell tölteni.
A kód érdekessége a setTimeout()
használata: mint az kiderült, második argumentumát 0-nak adva elérhetjük, hogy függvényünk a load eseménykezelők közül utolsónak fusson.
Jóde ez mennyivel növeli a
Amúgymeg használj a Twitter API-ra épülő appot twitteléshez.
Növeli