Jan 28 2009

YAF4AJN jetzt auch auf Sourceforge

Tag: JSON,PrototypeTobi @ 11:51 pm

Fast 1 Jahr ist es her, als die Deutsche Telekom ihre JSON-Bibliothek YAF4AJN präsentierte. Nun gibt es auch eine offizielle Projektseite bei Sourceforge.net, auf der die Bibliothek unter der LGPL Lizenz veröffentlicht ist. YAF4AJN (ausgesprochen: “ja fein”) ist die Abkürzung für “Yet Another Frontendcontroller for Ajax-Json-Networks”.

Die Bibliothek basiert zwar auf Prototype, ermöglicht aber eine sehr viel striktere Trennung von statischen HTML-Inhalten und dynamischer Werteberechnung, indem die Webseite dem Nutzer sofort angezeigt wird und dann einzubettende Werte asynchron von der Server-Applikation geholt werden. Eine Werte berechnenden Applikation muss also keine HTML-Seiten mehr als Output liefern. Seitenspezifisches Javascript entfällt ebenfalls. Dies ermöglicht u.a. eine frei redaktionelle Bearbeitung und vollständige Verwaltung der Seiten in einem Web Content Managment System.

Auf der Demo-Seite zum Projekt demonstriert die Telekom dieses Verfahren.

Neben der Sourceforge-Projektseite existiert natürlich weiterhin das Developer Portal der Telekom, auf diesem YAF4AJN inklusive einer einfachen “Hello World”-Applikation ebenfalls herunter geladen werden kann.


Okt 02 2008

Langerwartetes Prototype 1.6.0.3 erschienen

Tag: PrototypePatrick @ 10:57 pm

Ein dreiviertel Jahr nach Erscheinen des letzten Release veröffentlichten die Prototype-Entwickler die von Fehlern bereinigte Version 1.6.0.3, die von der Community bereits seit längerem herbeigesehnt wurde.

Die Javascript-Bibliothek erfuhr über 30 Bugfixes und 25 Verbesserungen im Vergleich zu 1.6.0.2 und ist dennoch abwärtskompatibel bis zu Version 1.6.

Zu den Neuerungen zählt die Unterstützung des Google Chrome-Browsers und der vom W3C eingeführten querySelector-API. So wird nun diese native API verwendet, wenn der Browser die API und den jeweiligen Selektor unterstützt.

Die nun aktuelle Version 1.6.0.3 ist ein Zwischenschritt zum nächsten Hauptrelease 1.6.1, an dem hart gearbeitet und gefeilt wird.

Die Entwickler äußerten sich nicht dazu, wann 1.6.1 fertiggestellt sein wird.

Das neue Prototype-Release kann man hier downloaden.


Mai 22 2008

Die goldenen Regeln für schnelle Prototype-Anwendungen

Tag: PrototypePatrick @ 12:14 am

Der hollänische BWL-Student und Javascript-Programmierer Thierry Schellenbach veröffentliche in seinem Mellow-Morning-Blog eine Abhandlung über geschwindigkeitsoptimiertes Entwickeln von Prototype-Anwendungen. Als Grundlage nutzte Schellenbach die Arbeiten von Joseph Smarr und Mark Wilton-Jones.

Zusammengefasst lassen sich die folgenden Tipps festhalten:

  • Vermeide die $$-Funktion zum Ansprechen von Elementen mit ids
  • Vermeide das Verwenden der bind-Funktion
  • Bevorzuge element.innerHTML gegenüber element.update() und document.createElement
  • Nutze for-Schleifen anstelle von each
  • Sei sparsam mit eval-Aufrufen
  • Sei sparsam mit try-catch-Befehlen
  • Speichere Variablen und Funktionen zwischen (Cache)
  • Führe Funktionen und Events erst dann aus, wenn sie wirklich gebraucht werden
  • Optimiere Schleifendurchläufe dahingehend, dass sie nur bei zu ändernden Elementen greifen

Apr 24 2008

Timeframe – der bessere Kalender

Tag: Javascript,PrototypePatrick @ 6:44 pm

Stephen Celis veröffentliche Anfang der Woche den Javascript-Kalender Timeframe mit vielen Extras.

Der Timeframe-Kalender ermöglicht das Markieren eines Tag oder gar mehrerer Tage. Voraussetzung zum Nutzen der Anwendung ist zum einen Prototype und zum anderen die timeframe.js-Datei.

Um Timeframe in ein bestehendes Projekt einzubinden, erzeugt man ein neues Objekt der Klasse Timeframe. Das sieht in der allgemeinen Form so aus: new Timeframe(element, options), wobei element für die ID des Elements steht, in welches der Kalender gezeichnet werden soll.

options bietet folgende Möglichkeiten zum individuellen Anpassen:

  • calendars – Anzahl der Monate die auf einmal angezeigt werden sollen (Standard: 2)
  • format – gibt das Datumsformat der input-Felder an (default: %b %d, %Y)
  • weekoffset – definiert den Tag des Wochenbeginn (1 um die Woche miit Montag beginnen zu lassen)
  • startfield, endfield – bestimmt den Beginn und das Ende der markierten Tage (standardmäßig werden diese von Timeframe erzeugt)
  • previousbutton, todaybutton, nextbutton, resetbutton – legt die Navigationselemente fest (standardmäßig werden diese von Timeframe dargestellt)

Ein Aufruf sieht beispielsweise so aus:

new Timeframe('calendars', {
startfield: 'start',
endfield: 'end',
previousbutton: 'previous',
todaybutton: 'today',
nextbutton: 'next',
resetbutton: 'reset' });
//]]>

Timeframe - Prototype-Kalendar


Apr 23 2008

ProtoRPG – ein Prototype-Rollenspiel

Tag: Javascript,Prototype,Scriptaculous,SpielePatrick @ 2:47 pm

Kürzlich wurde die Version 0.1.0 des Javascript-Rollenspiels ProtoRPG veröffentlicht.

Auf den ersten Blick erinnert diese Spieledemo stark an die Anfänge des Rollenspielgenres auf den Konsolen. Auch die Steuerung ist sehr einfach gehalten. Mittels Pfeiltasten bewegt man sich in der virtuellen Umgebung. Durch Drücken einer Aktionstaste und anschließend einer Pfeiltaste werden besondere Events ausgelöst, die da wären:

  • U + Richtungstaste : Benutzen (Tür öffnen, Schalter betätigen, usw.)
  • T + Richtungstaste : Sprechen (Gespräch beginnen)
  • L + Richtungstaste : Durchstöbern (Truheninhalt ansehen)
  • P + Richtungstaste : Schieben (Objekt verschieben)
  • A + Richtungstaste : Angriff
  • G + Richtungstaste : Item einsammeln

Das gesamte RBG läuft im Browser und ist nur in Javascript geschrieben. Dabei wird auf die Bibliotheken Prototype und Script.aculo.us zurückgegriffen.

ProtoRPG kann leicht verändert und durch eigene Dialoge und Grafiken angepasst werden, da nur gewöhnliche Bildformate und Klartextdateien verwendet werden.

Der Entwickler plant für die kommenden Versionen folgende Erweiterungen:

  • Anlegen und Laden von Speicherständen (mittels AJAX und / oder durch das Verwenden der neuen “Local Storage API”, die in den Browsern der nächsten Generation Einzug halten wird)
  • Töne (über den neuen <sound>-Tag, der in HTML 5.0 angekündigt wurde)
  • Magiesystem mit Zaubern und der Herstellung von Tränken
  • Weitere Befehle zum Aufrufen von Events im Spielverlauf
  • Zwischensequenzen

Ich gehe davon aus, dass uns in naher Zukunft noch weitere, viel aufwendigere JS-Spiele von pfiffigen Entwicklern erreichen werden und unser bisherigen Verständnis von Browsergames verändern werden.
ProtoRPG


Feb 21 2008

Nicht mehr nur Bilder mit Lightview 2

Tag: Prototype,Scriptaculous,ToolsTobi @ 12:33 am

Kürzlich berichteten wir über den Einsatz von Lightview als Bildergalerie. Der Autor Nick Stakenburg hat jetzt die Version 2 seiner Script-Bibliothek veröffentlicht. Bisher konnten mit Lightview Bilder auf elegante Weise über einer Webseite eingeblendet werden, wie aus Lightbox bekannt. Lightview 2 geht einen Schritt weiter und ermöglicht diesen Effekt ebenso mit Quicktime Videos (.mov), Flash Videos (.swf), Ajax (in Form von ajax-gestützter Verarbeitung innerhalb von Lightview), Iframe und Inline-Content. Diese Funktionalität ist grundsätzlich nichts Neues und bereits aus anderen Javascript-Bibliotheken, wie z.B. ThickBox, bekannt.

Der Screenshot zeigt das Abspielen eines Quicktime Videos mit Lightview 2:

Quicktime Film mit Lightview 2

Weitere Informationen, Demonstrationen, die Dokumentation und den Download findet man auf der Lightview-Projektseite.


Jan 29 2008

Prototype 1.6.0.2

Tag: PrototypeTobi @ 1:30 am

Die neue Version das Javascript Framework Prototype behebt einige Kompatibilitäts- und Sicherheits-Probleme und bietet verbesserte Sicherheitsmaßnahmen für Entwickler, die Prototype außerhalb einer Webbrowser-Umgebung nutzen.

Einige wichtige Änderungen sind:

  • 28 Fehler behoben
  • über ein Dutzend Verbesserungen im Programmcode, einschließlich Performance-Verbesserungen für CSS Selektoren in Safari 3 sowie für die Methoden Element#up/#down/#next/#previous und Event#findElement in allen Browsern
  • Unterstützung von Opera 9.25 und höher

Neben der zahlreichen Beseitigung von Fehlern, gibt es eine Änderung in der Art und Weise, wie Ajax.Request automatisch Javascript-Antworten auswertet. Frühere Versionen von Prototype verließen sich auf die XMLHttpRequest same-origin policy des Browsers, um sicherzustellen das Antworten mit dem Inhaltstyp ‘text/javascript’ sicher ausgewertet werden. “Same-origin policy” bedeutet, dass Domainname, Protokoll und Port übereinstimmen müssen, damit ein Script sicher ausgeführt wird.

Bestimmte Umgebungen außerhalb von Webbrowsern, zum Beispiel Opera´s Widget System, erzwingen nicht die same-origin policy und deswegen besteht die Cross-Domain-Sicherheitslücke. Um das zu verhindern, wurde die “Ajax.Request#isSameOrigin”-Methode eingeführt. Diese liefert “wahr” zurück, wenn eine Anfrage zur selben Domain, zum selben Port und Protokoll gesendet wird, wie die Seite besitzt. Zudem wird Prototype keine Javascript-Antwort mehr automatisch auswerten, wenn diese Methode “falsch” zurückliefert.

Die aktuelle Version ist abwärtskompatibel und kann somit problemlos gegen die veraltete Version 1.6.0 ausgetauscht werden. Ebenso wurden die Sicherheitsupdates auch für die Version 1.5 durchgeführt. Prototype 1.5 Nutzer können somit auf die Version 1.5.1.2 aktualisieren.

Prototype herunterladen