Huhu liebes Forum,
ich habe mich nun das erste mal mit AJAX beschäftigt und noch eine paar kleine fragen
ich mein im grunde hab ich das vorher immer mir einem verstecktem frame gehandhabt ... ging ja genauso ;)
aber zum thema: mein projekt besteht aus 2 frames, navigation und inhalt
um nun nicht überall ein js einbinden zu müssen hab ich mir gedacht, baust es in der navigation ein, die is eh immer da ^^
so sieht das ding aktuell aus:
var xmlHttp = null;
function request_fkt(ziel)
{
var xmlHttp = null;
try {
// Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
xmlHttp = new XMLHttpRequest();
} catch(e) {
try {
// MS Internet Explorer (ab v6)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try {
// MS Internet Explorer (ab v5)
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xmlHttp = null;
}
}
}
if (xmlHttp)
{
xmlHttp.open('GET', ziel, true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
if(xmlHttp.responseText!="1")
{
try
{
eval(xmlHttp.responseText);
}
catch(e)
{
fehlerfenster=window.open("about:blank","fehlerfenster","status=no");
fehlerfenster.document.write("<textarea style=\"width:100%; height:100%\">" + String(xmlHttp.responseText) + "</textarea>");
}
}
}
};
xmlHttp.send(null);
}
else return "konnte XMLHttpRequest nicht initialisieren";
}
man sieht hier, dass es eine leicht abgewandelte version aus der wikipedia ist
sind vielleicht anfängerfragen aber hier sind sie:
wenn ich ein request absetze, und vor der antwort noch ein request absetze, wird dann die erste antwort überhaupt noch ausgewertet?
so wie ich das sehe ist die variable xmlHttp global, und somit wird sie bei erneutem aufruf der funktion überschrieben, sprich eigendlich müsste ich doch die erste zeile raus nehmen damit mir das nicht passiert oder?
zweite frage: wie man sieht, lasse ich mir im fehlerfall ein fenster öffnen, und schreibe den rückgabewert in das fenster zur kontrolle
normalerweise soll ja kein fehler vorkommen aber WENN doch mal (datenbank weg, etc) dann ist es aktuell so, dass das fenster aufgeht, der rückgabewert rein geschrieben wird und dann nix mehr
beispiel: wie so oft vergisst man (oder nur ich) im php-script ein semikolon oder eine klammer, ergo bekomme ich einen fehler, der im fenster dargestellt wird
fehler wird gesucht, gefunden, behoben
ich führe die abfrage erneut aus, und was ist? er zeigt mir den selben fehler, selbst wenn ich den frame mit der navigation neulade
es funktioniert erst wieder, wenn ich die komplette seite neulade, also einmal F5, erst dann funktioniert wieder alles normal
dieses verhalten möchte ich selbstverständlich strikt vermeiden, wenn man ein fehler auftritt - ok, aber dann muss es auch bei der nächsten abfrage wieder funktionieren und nicht einfach sagen "öhm ... nö"
weiß jemand rat?
danke schonmal im voraus ;)
euer Sorgenkind