Bald ist es soweit und ich starte den 2. oder 3. Anlauf ein Browsergame zu programmieren.
Ich will es komplett mit Ajax verwirklichen. Ich weiß zwar das das mit zu alten Browsern nicht funktioniert aber es gibt ja auch bei Clientspielen Mindestanforderungen, also warum nicht bei BGs.
Damit ich Ajax auch beherrsche habe ich mich durch das Buch "Ajax mit PHP" von ADDISON-WESLEY gewühlt.
Dort wurden auch die meisten meiner fragen beantwortet, aber ich würde noch gerne wissen, wie ich Bilder nachladen und dann, wenn sie vollständig geladen sind, anzeigen kann.
Bis jetzt ist mir nur eine Funktion die sich ständig selbst aufruft und bei meinem Image die Eigenschaft complete abfrage.
Ist das möglich (auch in schen Performance)? Gibt es bessere Möglichkeiten?
Wie kann ich außerdem CSS und JS Dateien nachladen?
Und gibt es die Möglichkeit bereits geladenen CSS oder JS Dateien zu deaktivieren?
MfG Kevka
Dateien nachladen
gepostet vor 17 Jahre, 10 Monate von kevka
gepostet vor 17 Jahre, 10 Monate von Todi42
Original von kevka
Wie kann ich außerdem CSS und JS Dateien nachladen?
Du stellst einen asynchronen http-request an den Server und bekommst dann die angefragten Daten zurück. Bei JavaScript must Du den Code dann so schreiben, das mit eval() dann auch der gewünschte Seiteneffekt übrig bleibt. Z.B. eine neue Funktion. Für das Ändern des Styles würde ich mal in einer DOM-Dokumentation gucken.
gepostet vor 17 Jahre, 10 Monate von Toby
An sowas arbeite ich auch. Mein Tipp: Guck dir mal prototype an, wenn du ein bequemes Framework brauchst. Damit ist AJAX ein Klacks.
JS-Code nachladen hab ich bisher noch nicht gebraucht.
Was ich wichtig finde, ist, das man auch auf einer AJAX-Seite Bookmarks benutzen kann und die Vor-Zurückbuttons. Meine Lösung (nicht selber entwickelt *hüstel*) macht das mit Ankern, funktioniert ganz gut (wenn auch bisher nur mit dem Firefox richtig).
An Erfahrungsaustausch (gerne auch Codeaustausch
) bin ich immer interessiert!
JS-Code nachladen hab ich bisher noch nicht gebraucht.
Was ich wichtig finde, ist, das man auch auf einer AJAX-Seite Bookmarks benutzen kann und die Vor-Zurückbuttons. Meine Lösung (nicht selber entwickelt *hüstel*) macht das mit Ankern, funktioniert ganz gut (wenn auch bisher nur mit dem Firefox richtig).
An Erfahrungsaustausch (gerne auch Codeaustausch
) bin ich immer interessiert!
gepostet vor 17 Jahre, 9 Monate von Klaus
Um Bilder nachzuladen würde ich mit JS einen Request starten um das Bild anzufordern. Dann müsste die Datei im Browsercache liegen und wenn du das Bild dann ins DOM einfügst sollte der Browser keine Serveranfrage mehr starten.
Als Image-Source kann man mW leider nicht direkt das Ergebnis der Ajax-Anfrage benutzen, darum dieser Umweg. Allerdings weist du so zuverlässig, ob die Datei komplett geladen wurde. Der von dir gewählte Ansatz mit dem complete-Attribut funktioniert nur rudimentär.
Um Code nachzuladen gibt es noch den altmodischen - aber eval-freien - Weg über document.write('
PS: Ich stehe auch zwischen dem 2. und 3. Anlauf.
Als Image-Source kann man mW leider nicht direkt das Ergebnis der Ajax-Anfrage benutzen, darum dieser Umweg. Allerdings weist du so zuverlässig, ob die Datei komplett geladen wurde. Der von dir gewählte Ansatz mit dem complete-Attribut funktioniert nur rudimentär.
Um Code nachzuladen gibt es noch den altmodischen - aber eval-freien - Weg über document.write('
PS: Ich stehe auch zwischen dem 2. und 3. Anlauf.
gepostet vor 17 Jahre, 9 Monate von blum
warum so kompliziert?
gepostet vor 17 Jahre, 9 Monate von kevka
de.selfhtml.org/javascript/sprache/eventhandler.htm#onload
Funktioniert nur bei BODY und FRAMESET außerdem will ich die Bilder vorladen und dann die alten Bilder durch neue ersetzen.
Funktioniert nur bei BODY und FRAMESET außerdem will ich die Bilder vorladen und dann die alten Bilder durch neue ersetzen.
gepostet vor 17 Jahre, 9 Monate von knalli
Original von Klaus
Um Code nachzuladen gibt es noch den altmodischen - aber eval-freien - Weg über document.write('
Genau das macht auch script.aculo.us - es gäbe rein theoretisch noch die Alternative mit DOM, die funktioniert aber lt. Anmerkung des Entwicklers nicht im Safari.