| Problem mit AJAX |
Anuschka
Pixelschubser
Beiträge: 3
|
Hallo zusammen,
ich habe mir vor kurzem ein Aajaxbuch gekauft und mich ein wenig eingelesen und die Beispie nachporgrammiert. Soweit so gut. Der folgende Code ist ein einfaches Hallo World Beispiel. Jetzt möchte ich dieses Beispiel mit ein paar Handgriffen so umbauen, dass die Textdatei alle x sec. neu gelesen und dann ausgegeben wird. Das ganze soll laut Buch mit "setInterval" oder "setTimeout" gehen. Leider war ich bis dato nicht in der Lage das ganze im IE lauffähig zu bekommen. im alten Mozilla Firefox hat es mal kurz geklappt aber irgendwie kann es da ja nicht sein ...
schonmal danke für Eure Hilfe.
Anja
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43: | <html>
<head>
<title>JavaScript und HTTP</title>
<script type="text/javascript">
//<![CDATA[
window.onload = function()
{
var req = (window.XMLHttpRequest)
?
new XMLHttpRequest()
:
((window.ActiveXObject)
?
new ActiveXObject("Microsoft.XMLHTTP")
:
false
);
req.open("GET","hallo.txt",true);
req.onreadystatechange = function()
{
if (req.readyState==4)
{
if (req.status == 200)
{
var d = document.getElementById("hallo");
d.innerHTML = req.responseText;
alert(req.responseText);
}
}
}
req.send(null)
}
//]]>
</script>
</head>
<body>
<div id="hallo"></div>
</body>
</html> |
Diese Nachricht wurde geändert von: languitar |
|  Profil
Editieren
Zitieren
|
Netbuster
Fachidiot
Beiträge: 128
|
mach es so:
<html>
<head>
<title>JavaScript und HTTP</title>
<script type="text/javascript">
function leseDatei()
{
var req = (window.XMLHttpRequest)
?
new XMLHttpRequest()
:
((window.ActiveXObject)
?
new ActiveXObject("Microsoft.XMLHTTP")
:
false
);
req.open("GET","hallo.txt",true);
req.onreadystatechange = function()
{
if (req.readyState==4)
{
if (req.status == 200)
{
var d = document.getElementById("hallo");
d.innerHTML = req.responseText;
alert(req.responseText);
}
}
}
req.send(null);
return true;
}
interval = window.setInterval("leseDatei()",3000); //3000 Millisekunden
</script>
</head>
<body>
<div id="hallo"></div>
</body>
</html> |
Hab es in der Eile nicht getestet...
MFG,
Netbuster
Diese Nachricht wurde geändert von: Netbuster |
|  Profil
Editieren
Zitieren
|
Anuschka
Pixelschubser
Beiträge: 3
|
hi
erstmal danke für deine antwort. also er setzt jetzt auch im IE das intervall aber wenn ich bei der ausführung die hallo.txt ändere, dann schreibt er nicht das was nun in der hallo.txt steht sondern immer noch das alte.
LG Anja
|
|  Profil
Editieren
Zitieren
|
Netbuster
Fachidiot
Beiträge: 128
|
das liegt am cache...
änder dein Script dann mal folgendermaßen um:
<html>
<head>
<title>JavaScript und HTTP</title>
<script type="text/javascript">
function leseDatei()
{
var req = (window.XMLHttpRequest)
?
new XMLHttpRequest()
:
((window.ActiveXObject)
?
new ActiveXObject("Microsoft.XMLHTTP")
:
false
);
req.open("GET","hallo.txt?cacheaustricksen="+Math.round(Math.random()*100000+1),true);
req.onreadystatechange = function()
{
if (req.readyState==4)
{
if (req.status == 200)
{
var d = document.getElementById("hallo");
d.innerHTML = req.responseText;
alert(req.responseText);
}
}
}
req.send(null);
return true;
}
interval = window.setInterval("leseDatei()",3000); //3000 Millisekunden
</script>
</head>
<body>
<div id="hallo"></div>
</body>
</html> |
Diese Nachricht wurde geändert von: Netbuster |
|  Profil
Editieren
Zitieren
|
Anuschka
Pixelschubser
Beiträge: 3
|
super danke das funktioniert einwandfrei
das mit dem cache austricksten steht in einem buch.
spitze!
|
|  Profil
Editieren
Zitieren
|
Netbuster
Fachidiot
Beiträge: 128
|
bitteschön ;)
|
|  Profil
Editieren
Zitieren
|
sommawiesn
Pixelschubser
Beiträge: 1
|
Hallo zusammen
ich find das euer script genial, genau sowas hab ich gesucht.
Nur für meine bedürfnisse ist eine funktion zu viel wenn ich das script anwende kommt immer zusätzlich ein fenster. Das sollte nicht erscheinen sondern nur im browser sich aktualisieren also ohne Fenster geht das?
wenn ja wie?
vielen dank schonmal
|
|  Profil
E-Mail
Editieren
Zitieren
|
Ori
Fachidiot
Beiträge: 115
|
Lass 1: | alert(req.responseText); |
weg.
Achja: Bei einer Abfrage alle 3 Sekunden (ziemlich häufig...) sollte ein Timeout von 3 Sekunden eingetragen werden, der Standard ist wohl höher, aber derart langes Warten ist dann ja nicht nötig, weil schon die nächste Abfrage unterwegs ist.
Diese Nachricht wurde geändert von: Ori |
|  Profil
E-Mail
Website
Editieren
Zitieren
|