![]() |
Internet Explorer Caching AJAX
Hi, I know this is a fairly common issue, and I have tried a number of suggested methods I found to solve. But I still get the same issue of internet explorer working with an old recordset that the user has since updated on my page.
What happens is the user inserts a record (into my coach booking form) but when the user clicks to show the schedule the changes are not reflected in internet explorer, how can I force my function to work with the latest set of data? The folowing is the function that is used to show the latest schedule: <script type="text/javascript"> <!-- //Browser Support Code function GetSchedule(){ var ajaxRequest; // The variable that makes Ajax possible! try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ var ajaxDisplay = document.getElementById('ajaxDiv'); ajaxDisplay.innerHTML = ajaxRequest.responseText; } } var date = document.getElementById('date').value; var time = document.getElementById('time').value; // var queryString = "?date=" + date + "&time=" + time; // // ajaxRequest.open("GET", "getschedule.php" + queryString,+'&nocache = '+nocache true); // ajaxRequest.send(null); var date = document.getElementById('date').value; var time = document.getElementById('time').value; var queryString = "?date=" + date + "&time=" + time + '&r= (new Date()).getTime() + Math.round(Math.random() * 10000)'; ajaxRequest.open("GET", "getschedule.php" + queryString, true); ajaxRequest.send(null); } //--> </script> To fix I tried: var queryString = "?date=" + date + "&time=" + time + '&r= (new Date()).getTime() + Math.round(Math.random() * 10000)'; ajaxRequest.open("GET", "getschedule.php" + queryString, true); And also changing the GET to POST, but still didnt work? |
Did you clear your cache and made your you had the latest and greatest code?
Eric |
In IE, I clicked on 'Delete all' in 'Delete Browsing History' on the 'Internet Options'
Closed the Browser, reopened. Checked the source and it showed: Code:
var date = document.getElementById('date').value; |
Are you setting the no cache headers on the server?
Code:
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');Code:
xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); |
| All times are GMT +1. The time now is 01:54 PM. |
Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.