Geht es nur mir so oder merken andere das auch? Mit jedem Browserupdate werden dem gewillten Browsernutzer neue, teils abenteuerliche prozentuale Werte an Performancegewinn an den Kopf geklatscht.

Da wird durch den Wechsel der JavaScript-Engine auf einmal alles 1000% schneller, wo hingegen der Konkurrent mit seinem letzten Update ja nur 800% zulegen konnte… also schnell wieder den Browser wechseln damit Google Maps auch ja 2ms schneller geladen wird.

Ist das Gefecht um die Feature-Reichhaltigkeit also ausgetragen, und es geht nun in die zweite Runde? Ich persönlich gebe auf die Performance-Vergleiche der einzelnen Browser nicht mehr viel, denn es ist nur eine Frage der Zeit bis Browser X wieder von Browser Y überholt wird und umgekehrt, und ständig seine Nutzung anzupassen um immer dem schnellstem Browser hinterher zu jagen kann und will ich nicht.

Was in meinen Augen die wenigsten Browserhersteller erkannt bzw. gut umgesetzt haben ist, das der einzige wirkliche Vorteil des Marktführers Firefox, aktuell in seiner schier unendlichen Erweiterbarkeit liegt. Seien wir mal ehrlich, der Firefox ist ansonsten ein instabiler, Ressourcen fressender Browserklotz und es gäbe viele andere Browser die dem Firefox im Rohzustand bei weitem das Wasser reichen könnten. Was viele von einem Wechsel nur abhält ist, das es meist genau eine unverzichtbare Erweiterung gibt die ein anderer Browser (noch) nicht abbilden kann.

Das Mozilla hier genau das erkannt hat zeigt in meinen Augen die Entwicklung des Firefox Add-on Collector, mit dem es nun Möglich ist eine Sammlung von Plugins anzulegen und dieses Plugin-Paket in einem Atemzug in seinen Firefox zu integrieren.

Das Konzept der Plugins und deren einfachen Verwaltung hat in dieser Form noch kein anderer Browser gut integrieren können, was es den restlichen Herstellern schwer machen sollte hier schnell Zuwachs verzeichnen zu können.


Ich habe ja bereits vor einigen Monaten bekundet das ich nicht wirklich viel von Adblock-Plugins halte. Die Gründe möchte ich jetzt hier nicht noch einmal bis ins kleinste breit treten aber: Natürlich sind LayerAds und Soundbanner ein echtes Übel das vor allem dadurch penetrant wird das es unseriöse Anbieter gibt die beim Klick auf “Schließen” die Seite erst recht öffnen, dennoch denke ich das man kostenlosen Diensten etwas zurück geben sollte… und da stört es nicht die paar Banner mal mitladen zu lassen, es sei denn man bezahlt für seinen Traffic oder surft mit ISDN.

Nun kann es allerdings Fälle geben wo man als Seitenbetreiber erkennen möchte ob ein Besucher denn ein solches Plugin in seinem Browser benutzt oder nicht. Da das Plugin ja clientseitig fungiert und sich auch nicht im Header des Browsers zu erkennen gibt, ist das serverseitige erkennen aktuell nicht möglich.

Durch Zufall bin ich nun auf das kleine JavaScript Adblock Detector gestoßen. Auf der Seite findet man einige Beispiele und auch einen Livecheck mit dem man On-The-Fly testen kann ob das Script den eigenen AdBlocker denn erkennt. Bettet man das Script in die eigene Seite ein, kann es von nun an über einige kurze Tests im Hintergrund erkennen ob der aktuelle Nutzer denn einen Adblocker nutzt oder nicht, und dementsprechende Aktionen ausführen.

Möglich wäre z.B. in der eigenen Statistik aufzuzeichnen wie viele Besucher einen AdBlocker nutzen, oder den Besuchern einen Hinweis auszugeben das es durch die Benutzung von AdBlockern zu Darstellungsfehlern kommen kann.

Natürlich könnte man auch einen kurzen Hinweis ausgeben das das blockieren von Werbung dem Dienst die Einnahmen verringert, oder gar User mit AdBlockern vom Dienst aussperren, meine Erfahrung hat jedoch gezeigt das solche Moralpredigten oder gar Gängelungen bei Usern die bewusst auf Werbung verzichten wollen nichts bewirken.

Solltet ihr noch weitere nützliche Anwendungsbereiche sehen, dann immer her damit.


jQuery-Logo

Was mich in jQuery schon immer einiges an Nerven gekostet hat war der Animation-Queue. Legt man auf ein Element bzw. auf ein Event einen bestimmten Animationsablauf, und startet diese Animation z.B. durch schnelles hintereinander klicken auf den Trigger, so werden die Animationen aneinandergereiht und nacheinander ausgeführt, auch wenn man den Trigger vielleicht schon einige Sekunden nicht mehr geklickt hat.

Im Artikel Prevent Animation Queue Buildup auf Learning jQuery wurde nun beschrieben wie man besagtes Problem sehr einfach umgehen kann.

Des Rätsels Lösung ist die stop()-Funktion, bei der vor dem Start einer Animation erstmal alle anderen Animationen der selektierten Elemente gestoppt werden. Der Animationsfluss wird also unterbrochen sobald ein neuer Trigger ausgelöst wurde.

Sehr praktisch wird das ganze z.B. bei Hover-Events, wo der User durch schnellere Mausbewegungen sehr schnell einen unschönen Animation-Queue aufbauen kann.


jQuery-Logo

Heute erwischte ich mal wieder folgende Situation: Auf unserer Seite sollte beim Aufruf einer bestimmten URL eine Modalbox (Dialogbox ähnlich einer Lightbox) aufklappen in der der User einige Daten korrigieren sollte.

Mit jQuery sollte sowas eigentlich ganz einfach sein, also Core eingebunden und ein vernünftiges Plugin gesucht. Leider konnte keines der angebotenen Plugins genau das was ich wollte. BlockUI z.B. hatte extreme Probleme was die Darstellung in Browsern mit einem “Explorer” im Namen anging, und jqModal kannte meinen Event-Type nicht.

Eigentlich hatte ich ja noch aus früheren Zeiten ein anderes Plugin im Kopf, aber das schien seit geraumer Zeit in die jQuery UI integriert worden zu sein. Also schnell in die UI-Dokumentation geguckt, und da war meine Dialog-Funktion.

Doch beim Blick auf die Dateigröße blieb mir ein wenig die Luft weg. 52Kb wollte das Plugin für seine Dienste haben, zusätzlich zum normalem jQuery-Core.

Mal ehrlich: So schön solch eine Sammlung wie jQueryUI auch ist, so nervig kann sie auch sein wenn man nur einige kleine Funktionen aus ihr braucht. Klar, für fast alles gibt es auch andere Plugins, nur wurden die wirklich guten Plugins alle von jQueryUI importiert, was dafür sorgt das man diese nicht mehr als Plugins vorfindet und alle nur noch auf die UI verweisen.

Ich finde das Plugin-System von jQuery schon super flexibel und einfach einfach, warum mussten nun bei der UI so viele Abhängigkeiten eingegangen werden die dafür sorgen das man jedem Seitenbesucher gleich ein 100KB-Paket an JavaScript-Files zuwerfen muss?

Schön wäre zumindest gewesen, wenn die in die UI eingeflossenen Plugins auch weiterhin separat als Plugin weiterentwickelt worden wären.


Eine Sache die mich jeher an vielen Seiten stört die JavaScript-Funktionen nutzen ist, dass sie selten Permalink-Tauglich programmiert werden.

Ein Beispiel: Viele Webseiten setzen seit geraumer Zeit auf sogenannte Accordions um viele Inhalte auf wenig Platz darzustellen. Das Problem was diese Dinger jedoch oft haben ist, das ich keinen Link generieren kann der dem Empfänger genau das zeigt was ich ihm hier evtl. zeigen wollte.

Eventuell möchte ich mein Gegenüber mit einem Link genau auf eine meiner Referenzen hinweisen die ich eben mittels eines Accordions dargestellt habe. Bei den meisten Webseiten endet das dann mit Aussagen wie:

Hier der Link zu meinen Referenzen:
http://meinedomain.de/referenzen.html
Bitte scrollen Sie doch bis ans Ende des aufklappbaren Menüs und klicken Sie dann auf den Eintrag “Musterfirma”.

Das ist weder Zugänglich, noch benutzerfreundlich! Dabei wäre es mit Ankern doch so einfach! Wäre es nicht schön dem Kunden einfach eine URL wie z.B. http://meinedomain.de/referenzen.html#musterfirma zuzuschicken, und sobald sich die Seite lädt springt sein Browser direkt zu dem gewolltem Eintrag und blendet den besagten Punkt im Accordion automatisch ein? Natürlich wäre es das ;)

Kompletten Artikel lesen...


Greasemonkey ist fast schon ein Must-Have für Firefox. Mit diesem kleinen Plugin kann man ohne große Probleme bereits bestehende (fremde) Seiten mit nützlichen Funktionen nachträglich erweitern.

Im Prinzip steckt dahinter nichts als ein wenig Custom-JavaScript was beim aufrufen der Seite automatisch ausgeführt werden kann und somit den DOM der Seite nachträglich manipulieren kann. Neben der bestehenden Datenbank mit Greasemonkey-Scripten ist es natürlich auch interessant selber Hand anzulegen. Oft hat man Seiten die man relativ häufig benutzt, bei denen man sich aber die eine oder andere Funktion wünscht die noch fehlt. Beispiele wären z.B. das nachrüsten einer Tabellensortierung oder auch das verlinken von Geocaching-Tags auf Flickr.

Heute habe ich einen Weg entdeckt um auch in Greasemonkey die Features und Plugins von jQuery nutzen zu können. Alternativ kann natürlich auch folgende URL zum jeweils aktuellem Core genutzt werden: http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js. Sehr nützlich wie ich finde, denn so ist es nur noch ein Katzensprung bis zum eigenem Userscript.

Durch das duplizieren der ersten Zeilen kann man natürlich auch noch weitere JavaScript-Dateien mit ins Boot holen, also z.B. auch jQuery-Plugins auf die man dann im Customcode zugreifen kann.



Ältere Einträge

Blogsuche

RSS-Feeds

Plaste & Plastik

plasteundplastik.de - Das Geocaching-Weblog

Die Kategorien


Netz-Fundstücke


Meta / Propaganda