我已经在这里看到了几个类似的问题,但没有一个足够接近我想要的实际上有答案。
我有一个CF页面。生成大部分页面的查询具有潜在的可能性,具体取决于用户,并且我们会暂时盯着空白页面,认为它没有响应。
基本上,我的任务是在页面上加载各种各样的gif,直到它准备就绪,以免用户认为它已经崩溃。
我已经尝试了CFFLUSH方法,而且它没有按预期工作(我们使用的是IE9和IIS,显然有些设置不能很好地与彼此)它也离开了'#34; loading"主页加载后,屏幕上的文本/图像。我想让它在页面加载后消失。
我无法使用jQuery
我无法使用原生Ajax,而不能使用CFAJAX调用等方式访问本地Ajax。
这里的其他开发者建议像在其他地方一样使用CFWINDOW来检查会话是否超时等,但我还没弄清楚怎么样。如果有人可以指导我,我会向那些人开放。
思想?
答案 0 :(得分:1)
CFDIV。
另一名开发人员绞尽脑汁,因为他说他知道他之前曾在某处做过这件事。最后,他找到了它并且它是cfdiv。
基本上,你接受“违规”(即:持久)代码并将其剪切成另一个文件。然后,在头部添加<cfajaximport>
,然后在代码放置的位置添加:
<cfdiv id="divID" name="divName" bind="url:pageWithCode.cfm?(anyparameters)" bindonload="true" />
并确保将文件中的参数称为“url”。这一切都很完美!
感谢大家的帮助!
答案 1 :(得分:0)
也许我错过了一些东西,但答案对我来说似乎很简单。只需吐出页面,执行查询和显示结果的页面。执行查询的页面还可以包含实际格式。下面是一个简单的例子。
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<div id="body" style="width:100px">loading statement or loading images</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)
{
var response = obj.responseText;
alert(response);
document.getElementById('body').innerHTML = response;
}
};
obj.open("GET", url, true);
obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
obj.send();
}
}
load_url('/loadActualdata.cfm?timestamp=' + new Date().getTime().toString());
</script>
</BODY>
</HTML>
loadActualdata.cfm上的HTML
<table style="width:100%;border:1px solid red" border="0" cellpadding="0" cellspacing=""0">
<tr>
<td><b>test</b></td>
</tr>
</table>