AJAX / ASP -更新进度面板-响应.刷新
AJAX / ASP - Update Progress Panel - Response.Flush
我目前是第一次学习AJAX,混合了经典ASP。
我有一个AJAX脚本,调用我的ASP页面(process.asp)。在ASP文件中是1到1000之间的一个简单循环,它描绘了我在网站其他地方的图像过程,我想稍后添加AJAX。
AJAX脚本function processItems()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("notification").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","processItems.asp",true);
xmlhttp.send();
}
ASP页面
Response.Expires = -1
i = 0
Do Until i = 1000
i = i + 1
Loop
Response.Write "Process complete"
目前它工作得很好,当进程完成时,它向用户写一个消息"进程完成"…但是,因为有很多项目要处理,我想告诉我的用户哪个项目目前正在处理。"处理1000项中的第17项".
我读到我需要回应。刷新'以执行此任务,因此…
我可以用'。冲洗'在我的ASP脚本的循环部分,以显示项目编号(i)?如果是,我还需要什么吗?如果没有,谁能解释一下我需要做什么才能让它工作?
我是这么想的:
Response.Buffer = True
Response.Expires = -1
i = 0
total = 1000
Do Until i = total
i = i + 1
Response.Write "Processing Item "&i&" of "&total&""
Response.Flush
Loop
提前致谢
你不可能到达你想去的地方。ajax调用完成后将返回一个响应,如果有10000个文件要处理,则在最后一个文件的处理结束后获得一个响应。
你可以改变你的方法,通过使用反向AJAX(逗号AJAX),或者,使用相同的技术,我建议你如下:
- 一个ajax调用来获取需要处理多少文件。
- 基于索引处理文件的ajax调用。
如果您可以通过不获得"处理项目XX"而只是一条消息说"处理项目"来管理相处,您可以将以下内容添加到ajax调用:
if (xmlhttp.readyState==1)
{
document.getElementById("notification").innerHTML="Processing items";
}
readyState == 1将在call post之前触发。
相关文章:
- 强制模板刷新ember.js
- 如何通过ajax刷新JSF填充的javascript变量
- 如何将getJson的响应保存在全局变量中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 如何解决Yii中的页面刷新问题
- 使用angularjs向浏览器发送servlet响应(下载功能)
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- Chrome在刷新应用程序后30秒以上没有响应(打开了开发工具)
- 添加新行后无法“刷新”灯丝组表锯响应表
- 从窗口页面响应后刷新 php 页面
- 刷新行并将行的两列替换为来自操作类的响应
- 浏览器忽略来自 AJAX 响应的标头刷新
- 响应式JavaScript:“;刷新“;页面取决于屏幕宽度
- 响应滑块需要刷新才能工作
- NodeJS 脚本在浏览器刷新两次之前没有响应
- AJAX / ASP -更新进度面板-响应.刷新
- 在响应设计上刷新聊天应用程序伙伴的状态视图
- 响应中的XML在刷新时消失
- 我如何使这个响应(刷新窗口大小)Raphaeljs
- 响应前关闭模态.刷新-C#