kostenloser Webspace werbefrei: lima-city


Datenbank abfrage alle 5 sec

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    Hallo LC,
    Ich habe folgnen script um meine DB alle 5 sec abzufragen:
    <div id="shoutcastdiv">
    <?
    include ("sql2.php");
    
     $query = ("SELECT * FROM chat where id like '1' ");
    $result = mysql_query($query);
    
    //while ($data = mysql_fetch_array ($result))
    while ($data = mysql_fetch_array($result)) {
    
    $'nachricht'= htmlspecialchars(mysql_escape_string($data['nachricht']));
        
    
    echo"$'nachricht'<br>";
                  }
    ?>    
    <a name="bancor"></a>
    <a name="bancor2"></a>        
    
    </body>
    
    </div>
    
    
    
    <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();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/xml');
                    // zu dieser Zeile siehe weiter unten
                }
            } 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.onreadystatechange = alertInhalt;
            http_request.open('GET', url, true);
            http_request.send(null);
    
        }
    
        function alertInhalt() {
    
            if (http_request.readyState == 4) {
                  //  alert(http_request.responseText);
    
    document.getElementById("shoutcastdiv").innerHTML = http_request.responseText;
    
            }
    
        }
    
    iv = setInterval("macheRequest('test.php')",5000);
    
    </script>
    </html>

    allerdings klappt das nicht so wie ich es will wenn ich auf die Seite gehe gibt er mir alle nachrichten mit der id 1 aus. Aber wenn ich die Nachricht in der db ändere Wirt die Änderung nicht auf der Seite angezeigt.
    wo ist der Fehler?
    LG
    Christian

    Beitrag zuletzt geändert: 15.2.2010 18:37:11 von christian1603
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. So spontan fällt mir nur der Teil auf:
    iv = setInterval("macheRequest('test.php')",5000);

    Versuch den mal so
    var iv = window.setInterval("macheRequest('test.php')",5000);


    Der rest dürfte ja stimmen, zumal aus Mozilla Dev rauskopiert :biggrin:
  4. Vermutlich das gleiche Cache-problem was ich auch vor kurzem hatte...

    Probier folgendes:
    var iv = window.setInterval("macheRequest('test.php?t=' + (new Date()).getTime())",5000);


    Erklärung:
    Manche Browser holen sich "test.php" aus der Cache statt die Seite neu abzufragen.
    dadurch das man die unix-timestamp reinsetzt ist die url immer anders und wird nicht mehr aus der Cache geholt.
  5. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    simuliertes schrieb: Vermutlich das gleiche Cache-problem was ich auch vor kurzem hatte...

    Probier folgendes:
    var iv = window.setInterval("macheRequest('test.php?t=' + (new Date()).getTime())",5000);


    Erklärung:
    Manche Browser holen sich "test.php" aus der Cache statt die Seite neu abzufragen.
    dadurch das man die unix-timestamp reinsetzt ist die url immer anders und wird nicht mehr aus der Cache geholt.

    Danke! Schei.. Cache ich dachte der Speichert nur Bilder.... Naja egal klappt ja jetzt! :thumb::wave:
  6. Wenn das so ist hilft ja eventuell auch dieser code direkt von der php.net seite.
    Ich nutze den Code immer wenns ums solche Cache-Geschichten geht :wink:
    Das einfach in die "test.php" einfügen und schon sollte der Browser das file neu laden.
    // Date in the past 
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
    
    // always modified 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
    
    // HTTP/1.1 
    header("Cache-Control: no-store, no-cache, must-revalidate"); 
    header("Cache-Control: post-check=0, pre-check=0", false); 
    
    // HTTP/1.0 
    header("Pragma: no-cache");
  7. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    christian1603 schrieb:
    simuliertes schrieb: Vermutlich das gleiche Cache-problem was ich auch vor kurzem hatte...

    Probier folgendes:
    var iv = window.setInterval("macheRequest('test.php?t=' + (new Date()).getTime())",5000);


    Erklärung:
    Manche Browser holen sich "test.php" aus der Cache statt die Seite neu abzufragen.
    dadurch das man die unix-timestamp reinsetzt ist die url immer anders und wird nicht mehr aus der Cache geholt.

    Danke! Schei.. Cache ich dachte der Speichert nur Bilder.... Naja egal klappt ja jetzt! :thumb::wave:


    zu früh gefreut.

    Ich habe jetzt :
    var iv = window.setInterval("macheRequest('ChatBox.php?User=Chrissi#unten' + (new Date()).getTime())",5000);

    im Firefox geht auch alles Aber im IE lädt er nach 5 sek eineleere Seite?! Woran kann das Liegen?




    edit:Sry ich habe?t= vergessen jetzt geht es. Kann gelöscht werden.


    Beitrag zuletzt geändert: 16.2.2010 16:44:39 von christian1603
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!