Warum wird die Seite nicht aktuallisiert?

SnEaKy

Erfahrenes Mitglied
HTML:
<html>
<head>
<title>Sascha visits Sarah</title>
<script type="text/javascript" language="javascript">
 
    var http_request = false;
 
    function macheRequest(url) {
 
        http_request = false;
 
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
 
        if (!http_request) {
            alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
            return false;
        }
        http_request.open('GET', url, true);
        http_request.onreadystatechange = alertInhalt;
        http_request.send(null);
 
    }
 
    function alertInhalt() {
        if (http_request.readyState == 4) {
              var answer = http_request.responseText;
              if(document.getElementById("inhalt").innerHTML != answer){
                document.getElementById("inhalt").innerHTML = answer;
              }
              else{
                document.getElementById("inhalt").innerHTML = "";
              }
        }
 
    }
window.setInterval("macheRequest('sascha_visits_sarah.php')",1000);
</script>
</head>

<body>
<div id="inhalt">Lade..</div>
</body>
</html>

Warum wird der Request nicht jede Sekunde ausgeführt?
 
Ich habe es grade noch mal im Firefox probiert. Da funktioniert es auch. Aber im IE6 geht es nicht. Hast du eine Idee?
 
Auch im IE funktioniert es einwandfrei bei mir (6+7) :(
Bekommst du eine Fehlermeldung?

Was ist denn die Antwort von sascha_visits_sarah.php ?
 
Nein, gar nichts. Deswegen bin ich auch etwas verwirrt. Ich probier mein Glück weiter. Trotzdem Danke!
 
Die sascha_visits_sarah.php wird ja irgendetwas ausgeben...was sie bspw. im FF anzeigt.

Was ist das...es könnte einfach sein, dass der IE diese Ausgabe nicht in das div einfügen kann....deshalb meine Nachfrage, was gibt sie aus?

Lasse dir mal am Anfang von alertInhalt() einen alert() ausgeben....kömmt da was?
 
Da wird mittel [PHPF]echo[/PHPF] das Datum ausgegeben. Einmal wird es auch angezeigt, halt nur nicht im Sekundentakt aktuallisiert.

sascha_visits_sarah.php
PHP:
$tage =round(($ende-$start)/60/60/24);
$stunden = round(($ende-$start)/60/60);
$minuten = round(($ende-$start)/60);
$sekunden = ($ende-$start);

echo 'Tage: '.$tage.'<br>';
echo 'Stunden: '.$stunden.'<br>';
echo 'Minuten: '.$minuten.'<br>';
echo 'Sekunden: '.$sekunden.'<br>';
 
Mmmh...auch das funktioniert bei mir :eek:

Die einzige Erklärung dafür wäre, dass du etwas an den Sicherheitseinstellungen des IE geschraubt hast, und überhaupt kein JS läuft.
 
Eine kleine Änderung in der PHP-Datei behebt den Fehler. Sowas muss man natürlich wissen ;)
PHP:
$tage =round(($ende-$start)/60/60/24);
$stunden = round(($ende-$start)/60/60);
$minuten = round(($ende-$start)/60);
$sekunden = ($ende-$start);

Header("Pragma: no-cache");
Header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
header('content-type: text/html; charset=utf-8'); 

echo 'Tage: '.$tage.'<br>';
echo 'Stunden: '.$stunden.'<br>';
echo 'Minuten: '.$minuten.'<br>';
echo 'Sekunden: '.$sekunden.'<br>';

Trotzdem Danke Sven
 
Ja der Internet Explorer ist oft sehr seltsam, was das cachen angeht wie ich finde. Alternativ hätte man auch jedes mal die Adresse etwas ändern können: "bla.php?" + (new Date().getTime())...
 
Zurück