Ich schrieb ja bereits in Überraschungen (2) kurz, wie glücklich ich mit jqueryui bin - einer Javascript-Bibliothek, die bestimmte Funktionen für Benutzerinterfaces bietet.

Zum Beispiel verwende ich die auch für die automatische Vervollständigung von Benutzernamen, beispielsweise bei der Zugriffsrechtseingabe.
Ich bekomme möglicherweise Daten und Reihenfolge der Ereignisse nicht mehr ganz richtig zusammen, aber ungefähr so war es:

  1. Irgendwann hatte ich das Feature mal anderswo gesehen, und fand es mehr als interessant. Die verfügbaren Lösungen dafür waren allerdings noch nicht reif für den produktiven Einsatz. 2007 sah ich es dann wieder mal, und wollte es unbedingt haben.
  2. Dann folgte eine längere Suche nach einer vernünftigen Lösung dafür. Ich hab' mich irgendwann im Sommer 2008 für die Autovervollständigung in script.aculo.us Effects entschieden. Das bekam ich dann im September auch lauffähig.
    Zurückblickend möchte ich feststellen, daß das von allen Versuchen noch der Befriedigendste war.
  3. Leider basiert script.aculo.us auf der "prototype"-Javascript-Bibliothek. Die war, als sie herauskam, sicher eine klasse Sache - aber für meinen Geschmack ist sie (heute) nur noch zweitklassig (2011 ist sie drittklassig), und von der Benutzung her ist sie jquery weit unterlegen.
    Irgendwann überlegte ich mir daher, für den wahrscheinlich zunehmenden Javascript-Anteil im Forum doch lieber etwas zu nehmen, was mir mehr liegt, und bin von prototype auf jquery umgeschwenkt.
  4. Und damit bin ich dann im Januar 2009 auch auf die Autovervollständigung in der damals aktuellen Betaversion von jqueryui umgestiegen. Da ich anfangs genau diese eine Funktion daraus brauchte, hat mich der Umfang von jqueryui ziemlich erschreckt (wo jqueryui klein ist, ist jqueryui fett. So richtig fett), aber da ich erst mal etwas Funktionierendes brauchte, hab' ich darüber mal hinweg gesehen.
  5. Leider war die Routine in den nächsten paar Betaversionen (sie werden Release Candidates genannt, aber das sind sie garantiert nicht) nicht wirklich brauchbar, oder wenn sie es mal war, wurde irgendwie in der nächsten Betaversion dann wieder irgendetwas kaputt gemacht. Das war nicht wirklich eine große Freude.
  6. Daher bin ich dann im März 2009 auf eine andere jquery-basierte Lösung umgestiegen (http://dyve.net/jquery/?autocomplete , damals noch in Version 2).
    Mit der war ich anfangs fast zufrieden - mich störten nur ein paar Kleinigkeiten.
  7. Im Januar 2010 fiel mir dann auf, daß das Caching in der Routine ziemlich kaputt war. Was genau passierte, bekomme ich nicht mehr ganz sicher zusammen, aber der Effekt war auch anderen schon aufgefallen, und der oder die Autoren waren mehr daran interessiert, Version 3 fertig zu bekommen als Version 2 zu flicken.
  8. Aus anderen Gründen habe ich dann im März und April 2010 wieder mit jqueryui gearbeitet, und bei der Gelegenheit auch wieder den darin eingebauten Autovervollständiger getestet. Nun funktionierte es reibungslos, und ohne störende Kleinigkeiten. Also hab' ich wieder darauf umgestellt.
  9. Dann kam dann im September 2010 dann der Moment, in dem ein kleines Update von jqueryui von 1.8.2 auf 1.8.3 die Routine für einen wichtigen Anwendungsfall (Kunden-Website) brach.
    Zwischenbemerkung:
    „Es passiert oft genug, daß in irgendwelcher Software die Kompatibilität mal gebrochen wird. Shit happens - überall und jedem mal. Man ärgert sich darüber, und paßt sich entweder an oder läßt die Änderung rückgängig machen.

    Manchmal muß soetwas passieren, weil der alte Zustand unannehmbare Macken hat. Aber:

    • das passiert dann garantiert nicht als Teil eines kleinen Updates, was über den CDN-Mechanismus dann automatisch von wer-weiß-wie-vielen Leuten verwendet wird.
    • das passiert garantiert nicht, nachdem der Autor den alten Weg keine vier Monate vorher öffentlich angepriesen hat, und das nie korrigiert hat.
    • der Autor wird dann den neuen Weg nicht genauso schludrig dokumentieren.
    Ok, das kommt jetzt wahrscheinlich nicht als große Überraschung: Mit einem kleinen Update, automatisch über das content delivery network an Tausende Websites ausgeliefert, wurde die Kompatibilität absichtlich gebrochen, der Autor stellte sich stur, die Dokumentation war unvollständig ("Dokumentation"? "Beispiel"!), und schon das Beispiel zeigte klar, daß der neue Weg, das zu tun, irgendwann später wieder gebrochen werden würde.
    Damit war die Schmerzgrenze fast erreicht...
  10. Und dann kam der Februar 2011. Ich hab' zum ersten Mal mit jquery 1.5 herumgespielt, und war damit im Grunde ganz zufrieden. Nur zwei Sachen funktionierten nicht so ganz...
    Und die Eine war, na? Genau, die Autovervollständigung.
  11. Nun habe ich die ursprüngliche Version der Autovervollständigung von jqueryui, wie sie war bevor sie in jqueryui aufgenommen wurde, genommen, die Interna deutlich vereinfacht, und ein paar Mißstände bereinigt, und warte darauf, daß auch die bricht.


Sorry, das mußte ich einfach mal loswerden: mit so einer völlig einfach wirkenden Sache kann man Dutzende Stunden verlieren. Nicht nur einmal... und nicht ein einziges Mal war das Problem dabei je in meinem Code... was mich ja einerseits beruhigen sollte, andererseits die Sache nur um so ärgerlicher macht.

Gruß, Uwe