Nedávno jsem narazila na problém, že AJAXové volaní scriptu projde jednou a pak až do obnovení stránky ne. Problém je jednoduchý a stejně tak i řešeni. Jak známo IE rádo obsah stránek ukládá do mezipaměti (cache). Bohužel v případě ajaxu není mozné použít <ctrl> + R, ale to nevadí, je zde jiné řešení.

Do kódu stačí přidat tučně vyznačený kód.


function send_xmlhttprequest(obsluha, method, url, content, headers) {
var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new
ActiveXObject("Microsoft.XMLHTTP") : false));
var rnd = new String(Math.random());
var c_url = new String(url);

if (!xmlhttp) { return false; }
xmlhttp.open(method, url+(c_url.search(/\\?/gi)==-1?'?':'&')+'rnd='+rnd.substr(2),true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.onreadystatechange = function() { obsluha(xmlhttp); };
if (headers) {
for (var key in headers) {
xmlhttp.setRequestHeader(key, headers[key]);
}
}
xmlhttp.send(content);
return true;
}

Copyright © 1997 - 2024 vlasta nomenů. Tohle všechno je moje ;)