Avatar billede general_custer Nybegynder
16. marts 2006 - 23:31 Der er 1 løsning

XmlHTTP - ie og Firefox giver ikke samme resultat.

Jeg har siddet og rodet lidt med noget AJAX, og har lavet mig et lille eksempel der kan opdatere en dato, uden at opdatere selve siden.

Mit problem er at det virker i firefox men ikke i internet explorer.

siden er http://www.peterwind.dk/client2.php

koden kan ses herunder:

client2.php:

<HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
<head>
<title>Example 1</title>
<script src="http://www.peterwind.dk/script.js" type="text/javascript"></script>

<script type="text/javascript">
        function updatedate() {
                loadFragmentInToElement('http://www.peterwind.dk/server2.php', 'currentdate');
        }

</script>
</head>

<body>
        The current date is    <span id="currentdate"><?php echo date("l dS of F Y h:i:s A"); ?></span>.

      <br> <input type="button" value="Update date" OnClick="updatedate();" />
</body>

</html>

script.js:

var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
  xmlhttp = false;
  }
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}

function loadFragmentInToElement(fragment_url, element_id) {
    var element = document.getElementById(element_id);
    element.innerHTML = '<em>Loading ...</em>';
    xmlhttp.open("GET", fragment_url);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            element.innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.send(null);
}

server2.php:

<?php
echo date("l dS of F Y h:i:s A");
?>


Når jeg trykker på update i internet explorer vælger den bare at skrive et forkert tidspunkt, og hvis jeg trykker yderligere på update knappen sker der ikke noget.

I firefox ændrer tidspunktet sig til det rigtige hver gang jeg trykker på update.
Avatar billede general_custer Nybegynder
17. marts 2006 - 00:43 #1
hmm så har jeg selv fundet en løsning...problemet er at IE har en tendens til at "cache" mine GET requests og derfor bare spytter det samme resultat ud hver gang...

Jeg har nu tilføjet en lille linje efter xmlhttp.open("GET", fragment_url);

xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT")


Jeg takker for de mange svar :), og lukker nu spørgsmålet
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