Alle X Sekunden auslesen ...

Kufstein

B1G-Software-Kunde
#1
Mhh .. moin moin .. ich komme mit dem Ajaxx nicht so klar...

und wollte fragen ob folgende Idee funktionieren würde:

Ich will eine Iframe anlegen wo alle 10 Sekunden sich selber aktualisiert und eine Cookie messages setzt ....

in der tatsächlichen Seite will ich dass der Cookie mittels JAvascript alle 19 Sekunden ausgelesen wird und die Zahl die im Cookie steht auf der seite wiedergegeben wird ...

wäre das möglich ?


Vielen Dank schon mal ...


EDIT:

Also ich hab mir hier mal so ein kleinen JavascriptCode gebastelt....

Code:
function msglesen(n) {



a = document.cookie;

cookiename1 = a.substring(0,a.search('='));
cookiewert1 = a.substring(a.search('=')+1,a.search(';'));
if(cookiewert1 == '')
{cookiewert1 = a.substring(a.search('=')+1,a.length);}

a = a.substring(a.search(';')+1,a.length);

cookiename2 = a.substring(0,a.search('='));
cookiewert2 = a.substring(a.search('=')+1,a.search(';'));
if(cookiewert2 == '')
{cookiewert2 = a.substring(a.search('=')+1,a.length);}


if(cookiename1 == 'msg')
{
if(cookiewert1 > 0) {
return('('+cookiewert1+')');

}

}



}
jetzt will ich das der alle 10 Sekunden den Cookie erneut ausgibt und das mir dann an meiner gewünschten stelle ausgibt ...

Wie mache ich sowas ???????
 
Last edited:

patrick

Staff member
B1G-Software-Kunde
#2
Hi,

nimm doch einen einfachen XMLHTTPRequest statt dieser Cookie-Umweglösung. Im InternetExplorer würde ein User alle 10 Sekunden diesen Click-Sound hören, das ist nicht schön; außerdem ist das sicher ressourcenverschwendend und erfordert aktivierte Cookies...

Wo liegt dein Problem bei der AJAX-Lösung?
 

Kufstein

B1G-Software-Kunde
#3
Also ganz neue Situation. Des mit dem http Request habe ich jetzt raus ....
Code:
<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) {
            if (http_request.status == 200) {
                alert(http_request.responseText);
            } else {
                alert('Bei dem Request ist ein Problem aufgetreten.');
            }
        }

    }
</script>
</head><body>
<span
    style="cursor: pointer; text-decoration: underline"
    onclick="macheRequest('msg.php')">Einen Request absetzen
</span>
jetzt will ich aber das macherequest('msg.php') alle 5 Sekunden autromatisch ausgeführt wird, und das alert will ich so ersetzen, dass ich jetzt <span id="newmsg"> </span> machen kann und des wird dazwischen angezeigt ..

Hat jemand ne Idee wie ?
 
Last edited:

Kufstein

B1G-Software-Kunde
#4
Also vielen Dank an alle... ich hab die Lösung nun....
Code:
<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) {
            if (http_request.status == 200) {


if (http_request.responseText > 0) {
document.title = "QR-Neue Nachricht";
var xyz = document.getElementById ("msgshow");
xyz.innerHTML = "<b>("+http_request.responseText+")</b>";
document.title = "QR - Neue Nachricht!";
} else {
var xyz = document.getElementById ("msgshow");
xyz.innerHTML = "";
document.title = "Q-Radio >> Login war Erfolgreich.";
 }
            } else {
                alert('Bei dem Request ist ein Problem aufgetreten.');
            }
        }

    }

function doda() {
setInterval('macheRequest("msg.php")',10000);
}
</script>
und im body dann <body onload="doda()">

und an der Stelle wo ich die message dann habe <div id="msgshow"></div>
 
Top