Avatar billede mbm2016 Nybegynder
08. juli 2009 - 11:43 Der er 4 kommentarer og
1 løsning

Ajax problem med Internet Explorer

Hej eksperter,

Jeg har et ajax script som så meget andet virker fint i Firefox, bare ikke i Internet Explorer.

I Internet Explorer får den readyState koden 4, altså den modtager indholdet fra siden.

Problemet er bare at den modtager ikke det nye indhold hvis man f.eks indsætter en besked i filen beskeder.inc, som index.php kigger efter.

Den bliver ved med at sige "Ingen beskeder" på ajax siden

Her er mine sider:

---------------index.php:--------------------
<?php
header("Cache-Control: no-cache, must-revalidate");
if(!$_GET)
{
    $time = time();
    $etime = $time - (60*1);
    $fil = file("beskeder.inc");
    $ruller = "";
   
    for($i=0;$i<count($fil);$i++)
    {
        $cuttet = $fil[$i];
        $side = explode("|",$cuttet);
        if($side[1] > $etime)
        {
        echo '' . $side[0] . '|';
        }else{
        $filen = file_get_contents("beskeder.inc");
        $filen = str_replace($fil[$i],"",$filen);
        $fope = fopen("beskeder.inc","w");
        fwrite($fope,$filen);
        fclose($fope);
        }
    }
    if($fil[0] == ''){echo 'Ingen beskeder.';}
}
?>
---------------------------------------------

---------------javascript.js:----------------
var xmlhttp;
var metod;
var ur;
function InitialiserAjax()
{
if (window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}else if (window.ActiveXObject){xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}}
function StartAjax(metode,url){metod=metode;ur=url;HentBeskeder();}
function HentBeskeder(){xmlhttp.open(metod,ur,true);xmlhttp.onreadystatechange=ModtagetData;xmlhttp.send(null);window.setTimeout('HentBeskeder()',5000);}

function ModtagetData()
{
document.title = xmlhttp.readyState;
alert("Modtaget med readyState: "+xmlhttp.readyState);
    if(xmlhttp.readyState==4)
    {
    alert(xmlhttp.responseText)
      document.getElementById('b').innerHTML = xmlhttp.responseText;
      return true;
    }
    return false;
}


---------------------------------------------

---------------ajax.html:--------------------
<html>
<head>
<title>Ajax</title>
<script src="javascipt.js"></script>
</head>
<body onload="InitialiserAjax();StartAjax('GET','index.php');" bgcolor="#444444">
<div id="b"></div>
</body>
</html>
---------------------------------------------


Er der nogle der kan hjælpe?

På forhånd mange tusinde tak ;=)

/Mbm2007
Avatar billede spectrenectar Nybegynder
08. juli 2009 - 17:31 #1
"Problemet er bare at den modtager ikke det nye indhold"

Hvad gør du for at sikre dig at adressen ajax henter ikke er den samme?

Prøv: StartAjax('GET','index.php?i='+Math.random());"

Eller prøv at skrive dette i toppen:

header("Cache-Control: no-cache, must-revalidate");
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
Avatar billede mbm2016 Nybegynder
08. juli 2009 - 19:14 #2
-------------------------------------------------------
header("Cache-Control: no-cache, must-revalidate");
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-------------------------------------------------------
virkede perfectly ;) smider du et svar?
Avatar billede spectrenectar Nybegynder
08. juli 2009 - 19:29 #3
Det gør jeg her :)
Avatar billede mbm2016 Nybegynder
08. juli 2009 - 19:42 #4
okay ;) kan jeg spørge dig om hvor meget indhold f.eks i kb ajax kan overføre per sekund ?
Avatar billede spectrenectar Nybegynder
08. juli 2009 - 22:00 #5
Jeg lavede en søgning efter det men kunne ikke finde noget ud fra det jeg søgte efter. Det kunne være interessant at finde ud af, men jeg må være dig svar skyldig.
Jeg ved heller ikke om den pause der kommer før data ankommer
er afhængig af hvor meget der skal hentes, men jeg tvivler egentlig på det.

Måske en anden kan svare på det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester