我有以下代码:
<div id="results">loading image</div>
<script>
function load_url(url)
{
var obj;
if (window.XMLHttpRequest) obj = new XMLHttpRequest();
else if (window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP");
if (obj !== null)
{
obj.onreadystatechange = function()
{
if (obj.readyState == 4 && obj.status == 200)
{
var response = obj.responseText;
alert(response);
document.getElementById('results').innerHTML = response;
}
};
obj.open("GET", url, true);
obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
obj.send();
}
}
load_url('_mainpageResults.cfm?tStatus=<cfoutput>#tStatus#&tFinalSort=#tFinalSort#&tDirection=#tDirection#&tSection=#tSection#&tSort=#tSort#</cfoutput>');
</script>
初始加载,虽然很长(我认为这是内部页面的一个因素,查询需要很长时间,但这是一个不同的问题)正确加载。但是,如果我改变某些内容以使其中一个参数不同,则页面不会注册代码更改。
例如,如果通过页面上的下拉菜单将“tStatus”从“Open”更改为“Closed”,它将意识到那里有新代码并运行它。但是,如果我再次将其更改为“打开”,它只会加载旧版本而不会意识到我已经添加了代码。
此外,在可能相关的注释中,返回的渲染表格是不成比例的。
我最初使用<cfdiv>
调用此页面,但此处的人员建议不要这样做。这对<cfdiv>
工作正常,但我试图让它更清洁。
感谢。
答案 0 :(得分:2)
IE默认情况下不会缓存Ajax吗?
在jQuery中,我必须这样做:
$.ajaxSetup( {cache: false} );
答案 1 :(得分:1)
尝试这个老技巧。添加随机字符串作为URL参数以避免页面缓存。您可以在页面加载调用中使用CreateUUID()函数,如下所示:
load_url('_mainpageResults.cfm?tStatus=<cfoutput>#tStatus#&tFinalSort=#tFinalSort#&tDirection=#tDirection#&tSection=#tSection#&tSort=#tSort#&rstr=#CreateUUID()#</cfoutput>');
至于你的桌子看起来如何,你没有给我们足够的信息来帮助你。