mmofacts.com

Projax

gepostet vor 17 Jahre, 6 Monate von Skorpjon
Hi,
ich bin am überlegen, ob ich Projax (Prototype und Scriptacoulous mit PHP) für mein Spiel einsetze. Die ersten Tests sind sehr vielversprechend. Ich habe in einem unkritischen Breich aufklappbare Übersichtstabellen erstellt, die mit versteckten tbody-Elementen arbeiten. Man muss nur die Bibliotheken einbinden ein Projax-Objekt erstellen und dem link folgenden Inhalt verpassen:
visual_effect("toggle_blind","add_entry");?>;">

Schon kann man das Element "add_entry" mit einem Klick auf- und zuklappen. Außerdem kann ich höchstwahrscheinlich die $_GET und $_POST-Variablen weiterhin durch mein eigenes System schleusen, was gegen XAJAX ein erheblicher Vorteil ist.
Hat jemand Erfahrungen mit der Fehleranfälligkeit von solchen Frameworks? Grundsätzlich arbeite ich lieber mit selbstgeschriebenen Code, aber Javascript wollte sich mir bisher aus einem unerfindlichen Grund nicht erschließen. Alleine wenn ich sehe, dass FF und IE zu unterschiedlichen Ergebnissen kommen, könnte ich schon 20mal die Gesichtsfarbe wechseln.
Projax ist unter GNU GPL veröffentlicht. Da stellt sich mir die Frage, ob es irgendwelche Auswirkungen auf die Rechte an meinem eigenen Code hat
Grüße
Skorpjon
gepostet vor 17 Jahre, 6 Monate von Todi42
Ich benutze seit Anfang des Jahres prototype und kann nichts schlechtes berichten. Es verbirgt aber auch nicht alle Browserunterschiede vor einem.
gepostet vor 17 Jahre, 6 Monate von Drezil
Original von Skorpjon
Hat jemand Erfahrungen mit der Fehleranfälligkeit von solchen Frameworks? Grundsätzlich arbeite ich lieber mit selbstgeschriebenen Code, aber Javascript wollte sich mir bisher aus einem unerfindlichen Grund nicht erschließen. Alleine wenn ich sehe, dass FF und IE zu unterschiedlichen Ergebnissen kommen, könnte ich schon 20mal die Gesichtsfarbe wechseln.

Dafür gibt es doch protorype.. das kapselt alles. Damit funzt derselbe code auch im ff, ie, opera, safari und konqueror ..
und javascript mit prototype ist gaanz einfach. Hat auch nicht mehr viel mit den "früheren" Techniken zu tun.
Ich finde es programmiert sich ähnlich elegant wie Ruby.. z.b. ein $$('.hinweis').invoke('hide'); blendet alle elemente mit der css-eigenschaft hinweis aus. kann man z.b. über each und eine anonyme funktion noch mit scriptaculous koppeln und so alles faden lassen ..
ich weiss nicht, wie genau du ajax einsetzen willst. ich geb hier mal nen kurzes beispiel:
	showInfo(

'Informationen über '+plani.pname+' ('+plani.user+')',
'Aktuelle Position: ('+Math.round(plani.x)+'|'+Math.round(plani.y)+')
Atmosphäre: '+atmo+'
Diplomatische Optionen: '+diplo,
ICON_INFO);
new Ajax.Request('ajax/naviPlanetOffers.php?pid='+plani.pid, {
method: 'get',
onSuccess: function (response) {
var trade = response.responseText.evalJSON();
var appendb = '';
var appends = '';
p = $('infop');
tradeableRess.each( function(ress,i) {
if (trade.planet.buy > 0) {
appendb += '[0]+'.png" alt="'+tradeableRess[1]+'" />: '+trade.planet.buy+' zu '+(Math.round(trade.course*100)/100)+'
';
}
//'+tradeableRess[1]+'
if (trade.planet.sell > 0) {
appends += '[0]+'.png" alt="'+tradeableRess[1]+'" />: '+trade.planet.sell+' zu '+(Math.round(trade.course*100)/100)+'
';
}
});
if (appendb != '')
p.innerHTML += '
Kauft:
'+appendb;
if (appends != '')
p.innerHTML += '
Verkauft:
'+appends;
}
});
das ist einfach ein funktionsaufruf (show_info) mit nen paar daten (erzeugt ein zentriertes div mist buttons und stuff.. der text steht in dem p-tag mit der id "infop").
danach starte ich sofort einen ajax-call, der ermittelt wie es um den handel mit diesem planeten bestellt ist. die antwort ist ein json-string, der sofort interpretiert und dann einmal durchgegangen wird. das ergebnis wird dann "live" in der zuvor angezeigte box angehängt.
soviel zum thema js und "schwer" .. mit prototype wird es ganz einfach.. zur not schaut man in die doku.
zum thema gnu gpl: die gpl sag ja eigentlich "wenn du teile meines codes verwendest ist dein code 'verbrannt' und du musst ihn auch inter die gpl stellen" (meine interpretation .. kann natürlich abweichen )
gepostet vor 17 Jahre, 6 Monate von TheUndeadable
> Projax ist unter GNU GPL veröffentlicht. Da stellt sich mir die Frage, ob es irgendwelche Auswirkungen auf die Rechte an meinem eigenen Code hat
Wenn deine Applikation von Projax abhängig ist und du deine Applikation weitergeben möchtest, so musst du sämtlichen Sourcecode und abhängigen Teile weitergeben.
Ob dazu der Serverteil dazugehört, musst du selbst entscheiden. Ich persönlich habe entschlossen dieses Rechtsrisiko nicht auf mich zu nehmen, da meiner Meinung nach diese GPL-Bibliothek von deiner Web-Applikation genutzt und der generierende Teil (PHP) fällt ausdrücklich darunter (seit GPL v3):
gplv3.fsf.org/gpl-draft-2007-05-31.html
"The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities."
Wie gesagt, du musst selbst entscheiden ob du das Risiko auf dich nimmst, wenn du NICHT vorhast deine Applikation OpenSource zu machen.
gepostet vor 17 Jahre, 6 Monate von None
Denk an die MySQL Connectoren, welche neuerdings auch unter eine andere Lizenz fallen.
So langsam kann man wirklich von einer Seuche namens GPL sprechen.
gepostet vor 17 Jahre, 6 Monate von Skorpjon
Dann werde ich wohl nur Prototype & Scriptacoulous verwenden, die eine MIT-Lizenz haben.
Wenn ich es richtig interpretiere, macht der Befehl
visual_effect("toggle_blind","add_entry");?>;">

nichts anderes, als dass er einen Scriptacoulous?-Funktionsaufruf in den Link kopiert. Html-Ergebnis:

Nachdem ich mir jetzt noch mal genauer den Quellcode von Projax angeschaut habe, scheint sich diese Systematik auch bei allen anderen Funktionen durchzuziehen. Die Idee ist pfiffig und wenn man nur PHP gewöhnt ist, sehr angenehm zu programmieren. Es ist aber nicht so kompliziert, dass man sie nicht nachprogrammieren kann und sich seinen eigenen Code mit GPL verseuchen muss. Dann kann ich das Objekt auch gleich meinen Bedürfnissen besser anpassen, bzw. nur das mit reinnehmen, was ich benötige. Später muss ich mich dann doch mal mit den Grundlagen von Prototype auseinandersetzen.
gepostet vor 17 Jahre, 6 Monate von TheUndeadable
> Denk an die MySQL Connectoren
Kurz offtopic: Die MySQL-Connectoren für PHP wurden von der GPL ausgenommen.

Auf diese Diskussion antworten