<script> nach Ajax nachladen
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
beispiel
betreff
code
funktion
http
inhalt
kleine helfer
machen
manipulieren
modus
nachladen
nachricht
nutzen
objekt
post
projekt
sache
string
url
vielfaches leichter beispiel
-
Hallo, ich lade mit Ajax ein <script> Element, aber da diese nur beim Laden ausgeführt werden, sollte ich das im Nachhinein noch machen.
function ajax(method){ var hr = new XMLHttpRequest(); var vars = "method="+method; var url = 'ajax.php'; hr.open("POST", url, true); hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { var return_data = hr.responseText; document.getElementById("container").innerHTML = return_data; } } hr.send(vars); }
Was zurück kommt wär dann:
nur wird es eben wie schon erwähnt nicht geladen.<script type="text/javascript" src="/forum/plugins/embedvanilla/remote.js"></script>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hol dir doch das Skript direkt als String und führe sie dann in deiner Ajaxmethode aus. Lies hierzu auch folgendes:
http://viralpatel.net/blogs/calling-javascript-function-from-string/
Oder verpacke dein Skript in eine Funktion, und rufe sie nach deinem Ladeprozess auf.
Oder es handelt sich um eine begrenzte Anzahl an möglichen Funktionen und implementiere diese im Vorhinein und hole dir nur die Information vom Server, welche Methode genau aufgerufen werden soll. -
wenn du in deinem Projekt häufiger Ajax benutzt, solltest du dir wirklich überlegen jQuery zu nutzen, es macht die Sache um ein vielfaches leichter.
Beispiel:
$.post('game.php',{screen:'pn', modus:'send', reciver:reciver, betreff:betreff, inhalt:inhalt}, function(data)
{
alert("Es wurden "+data+" Nachrichten erfolgreich verschickt");
}); -
online-capture schrieb:
wenn du in deinem Projekt häufiger Ajax benutzt, solltest du dir wirklich überlegen jQuery zu nutzen, es macht die Sache um ein vielfaches leichter.
Beispiel:
$.post('game.php',{screen:'pn', modus:'send', reciver:reciver, betreff:betreff, inhalt:inhalt}, function(data)
{
alert("Es wurden "+data+" Nachrichten erfolgreich verschickt");
});
Was macht dich bei dieser Aussage so sicher? Die Funktion die er benutzt ist doch auch ok, außer dass sie nicht abwärtskompatibel zu älteren Internet Explodierern ist, aber das ist ja erstmal ok.
Ich kann mir auch schnell und einfach eine kleine ajax-lib schreiben, die zuverlässig arbeitet, teilweise sogar mehr Comport bietet und nichtmal im Ansatz so groß ist wie jQuery…
jQuery ist und bleibt ein tolles Tool, um Code zu manipulieren und ist auch durch viele Plugins erweiterbar, aber es gibt durchaus Situationen, in denen jQuery nicht die schlaueste Wahl ist…
MooTools ist für Programmatische Situationen z.B. viel besser geeignet, da es vor allem spezialisierte "Klassen" zur Verfügung stellt. Wie z.B. eine extrem leistungsfähige Ajax-Anbindung, die der jQuery-Lösung doch überlegen ist. Dafür ist MooTools aber auch nicht so toll, wenn man nur mal schnell etwas ändern will.
Das was ich gerade über MooTools geschrieben habe gilt übrigens zum Teil auch für Prototype.js und YUI.
jQuery ist lediglich beliebt, weil es simpel ist, sobald man sich an die Benutzung gewöhnt hat.
So und nun zu der kleinen Ajax-Lib die man beutzen könnte, meine eigene ajax-lib ist komprimiert gerademal 2286 Zeichen lang und abwärtskompatibel bis IE Version 5.5 zu der Zeit gab es Chrome noch nicht und Firefox konnte noch kein Ajax…
Und der Code ist auch nicht viel aufwändiger als dein jQuery, nur wesentlich flexibler, man kann nämlich das komplette XMLHttpRequest-Objekt manipulieren und hat noch ein paar kleine Helfer mit an Board, wie z.B. ein JSON oder ein interval, halt Sachen, die man gelegentlich mal brauchen kann.
Ein Beispiel für die Syntax gebe ich hier mal:// Funktion definieren, die den responseVerarbeitet var onComplete = function(requestObj, responseText){ alert("Es wurden "+responseText+" Nachrichten erfolgreich verschickt"); }; // neues ajax-Objekt erstellen var request = new ajax('game.php'); // Einstellungen festlegen request.set({ data:{screen:'pn', modus:'send', reciver:reciver, betreff:betreff, inhalt:inhalt}, oncomplete:onComplete }); // Alle 500 millisekunden den request erneut abfeueren request.interval(5e2); // Das interval verwerfen und statt dessen nach 5 Sekunden aufrufen request.timeout(5e3); // als Post-versenden request.post(); // usw. …
Ah bevor ich es vergesse ist hier ein Beispiel: http://help.home.nehrke.info/ajax/ajax.html
Und wie gesagt, die lib ist so wesentlich kleiner als wenn ich nur für sowas jQuery, MooTools oder YUI nachladen würde. Wobei MooTools vermutlich auch recht klein wäre… -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage