An welcher Stelle im Script kann ich den Cache oder sowas leeren?
Der IE hat einige Probleme mit speicherlecks (google sagt 3 Millionen), daher ist es immer schwierig auf sowas zu antworten.
Aber was mir auffällt.
» var anfrage = null;
>
> function erzeugeAnfrage() {
> }
>
> function getVerkaufteBoards(){
> erzeugeAnfrage();
Du erstellst bei jedem Aufruf ein neues anfrage Objekt, ohne darauf zu warten, ob auf die vorherige Anfrage eine Antwort kam. Besser wäre es, wie Mathias schon sagte, nur einmal das Objekt zu erzeugen, was relativ leicht in der erzeugeAnfrage() Funktion gemacht werden kann:
if(anfrage) return;
Aber um sicher zu gehen, dass eine Anfrage schon fertig ist, solltest du einen Flag setzten und wenn dieser gesetzt ist abort() aufrufen.
Du kannst diesen an das anfrage Objekt hängen, ich hab das mal in deinen code eingebaut:
var anfrage = null;
function erzeugeAnfrage() {
if(anfrage) return;
try {
anfrage = new XMLHttpRequest();
} catch (versuchmicrosoft) {
try {
anfrage = new ActiveXObject("Msxml2.XMLHTTP");
} catch (anderesmicrosoft) {
try {
anfrage = new ActiveXObject("Microsoft.XMLHTTP");
} catch (fehlschlag) {
anfrage = null;
}
}
}
if (anfrage == null)
alert ("Fehler beim Erstellen des Anfrage Objekts!");
}
function getVerkaufteBoards(){
erzeugeAnfrage();
var url = "../statistik2.php";
if(anfrage.idle) { anfrage.abort(); anfrage.idle = false;}
anfrage.open("GET", url, true);
anfrage.onreadystatechange = updateSeite;
anfrage.send(null);
anfrage.idle = true;
}
function updateSeite() {
if (anfrage.readyState==4){
anfrage.idle = false;
...
Struppi.