Guten Morgen,
bisher habe ich meine "Freundechatseite" immer mit frames erstellt. Nun habe ich vollständig auf CSS umgestellt und bin sehr sehr glücklich über die vielen Möglichkeiten, die CSS so bietet. Doch nun hänge ich an einem Folgeproblem der Umstellung.
Bisher hatte ich u.a. 2 Frames, die regelmäßig neugeladen wurden. In dem Einen ist immer nur der letzte Eintrag aus einer Datenbank (Chatnachricht) und in dem Anderen wird angezeigt, wer gerade online ist. Es wurden also PHP Dateien refreshed.
Da bei einem include dieser PHPs in verschiedene DIVs, mit entsprechendem refresh im Quellcode, immer die ganze Seite flickert, habe ich es mit AJAX versucht. Da gibt es ja schon tolle Scripte im Netz.
Mit folgendem Code kann ich ohne die gesamte Seite neu laden zu müssen, zumindest in einem Div immer frische Infos angeben:
Ich bekomme es aber nicht hin, diesen Code so abzuändern, dass ich eine weitere PHP in einem anderen Div nachlade.
Ich habe schon versucht einfach in dem zweiten Div eine Datei zu includen, die ebenfalls diesen Code mit entsprechenden Verweisen enthält. Dann wird jedoch immer nur diese ausgeführt und die erste erscheint nicht mehr.
Hat jemand einen Tipp, wie ich mein Problem lösen kann oder einen Link zu einer Erklärung/Abhandlung? (-das was ich gefunden habe diesbezgl. war FÜR MICH nicht hilfreich.)
Danke schon jetzt,
Piego
bisher habe ich meine "Freundechatseite" immer mit frames erstellt. Nun habe ich vollständig auf CSS umgestellt und bin sehr sehr glücklich über die vielen Möglichkeiten, die CSS so bietet. Doch nun hänge ich an einem Folgeproblem der Umstellung.
Bisher hatte ich u.a. 2 Frames, die regelmäßig neugeladen wurden. In dem Einen ist immer nur der letzte Eintrag aus einer Datenbank (Chatnachricht) und in dem Anderen wird angezeigt, wer gerade online ist. Es wurden also PHP Dateien refreshed.
Da bei einem include dieser PHPs in verschiedene DIVs, mit entsprechendem refresh im Quellcode, immer die ganze Seite flickert, habe ich es mit AJAX versucht. Da gibt es ja schon tolle Scripte im Netz.
Mit folgendem Code kann ich ohne die gesamte Seite neu laden zu müssen, zumindest in einem Div immer frische Infos angeben:
Code:
<script type="text/javascript"><!-- /** * XMLHttp-Objekt erstellen */ var xmlHttp = false; /*@cc_on @*/ /*@if (@_jscript_version >= 5) try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } @end @*/ if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } /** * Nachdem des Dokument vollständig geladen wurde * wird onLoadAction aufgerufen. */ window.onload = onLoadAction; function onLoadAction() { macheRequest('test.php'); } /** * Pause */ function pausecomp(millis) { var date = new Date(); var curDate = null; do { curDate = new Date(); } while(curDate-date < millis); } /** * Request vorbereiten und senden */ function macheRequest(url) { if(xmlHttp) { document.getElementById("quickview_show").innerHTML = "... lade ..."; xmlHttp.open("GET", url, true); xmlHttp.onreadystatechange = alertInhalt; xmlHttp.setRequestHeader("Pragma", "no-cache"); xmlHttp.setRequestHeader("Cache-Control", "must-revalidate"); xmlHttp.setRequestHeader("If-Modified-Since", document.lastModified); xmlHttp.send(null); } } /** * Request entgegennehmen und verarbeiten */ function alertInhalt() { if (xmlHttp.readyState==4 && xmlHttp.status==200) { pausecomp(0); var response = xmlHttp.responseText; document.getElementById("quickview_show").innerHTML = response; } } /** * Funktion alle 15 Sekunden aufrufen */ var iv = setInterval("macheRequest('test.php')", 25000); //--></script>
Ich habe schon versucht einfach in dem zweiten Div eine Datei zu includen, die ebenfalls diesen Code mit entsprechenden Verweisen enthält. Dann wird jedoch immer nur diese ausgeführt und die erste erscheint nicht mehr.
Hat jemand einen Tipp, wie ich mein Problem lösen kann oder einen Link zu einer Erklärung/Abhandlung? (-das was ich gefunden habe diesbezgl. war FÜR MICH nicht hilfreich.)
Danke schon jetzt,
Piego
Kommentar