用asp+xml显示执行进度

www007www 2003-12-05 01:41:43

最近用asp实现数据导入,要导入的数据有几万条,没有执行进度是件令人头疼的事情,所以想了一个方法来实现。
思路:在数据导入过程序,把当前导入的第I条数据,存到xml文件中,用另一页面调用,用js 实现刷新数据。
1 在导入中创建 xml文档 其格式为
<xml>
<value>i</value>
</xml>
代码如下 (fun.asp)
sub inputs()

for i = 1 to 20000
'使用XMLDOM生成xml文件记录数据
set objDom=server.CreateObject("MSXML2.DOMDocument")
Set xml=objDom.CreateElement("xml")
objDom.DocumentElement=xml
set value = objDom.createElement("value")
value.text = I ‘存储当前 第 几条数据
xml.appendChild(value)
objDom.save (server.mappath("getInfo.xml")) ‘创建xml文件
set objDom=nothing

‘存储数据
set rs=server.createObject("adodb.recordset")
sql="select * from workspace"
rs.open sql,conn,3,3
rs.addnew
rs("id_fst")=2
rs("id_sec")=2
rs("workspace")=2
rs("intX")=2
rs("intY")=2
rs.update
rs.close
set rs=nothing
next
set objDom=nothing
end sub

2 创建状态显示页 state.asp
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<script language="javascript">
function ShowMessage() // 刷新数据
{
getxml();
setTimeout('ShowMessage()',10);

}

function getxml() //读取xml文件信息
{

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
var the_value;
var max;
var percent;
var the_text;
xmlDoc.async = false;
xmlDoc.load("getInfo.xml");
the_value = xmlDoc.documentElement.firstChild.xml;
var max=<%=max%>; ‘数据总数,可以用rs.recordcount得到
the_text='<table>';
the_text+='<tr><td>';
the_text+=max;
the_text+='</td></tr>';

the_text+='<tr><td>';
the_text+=the_value;
the_text+='</td></tr>';


divTest.innerHTML = the_text; //显示到html文件中
}
</script>

<BODY onload='ShowMessage()'>
<DIV id=divTest></DIV>

<P> </P>


</BODY>
</HTML>
数据存储页 savadata.asp
<!--#include file="CONN.ASP" -->
<!--#include file="FUN.ASP" -->
<%call inputs()%>

这样,在你执行 savadata.asp之后 , 打开 state.asp 页面 ,你就可以看到存储的状态了!
...全文
25 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingwhj 2003-12-05
  • 打赏
  • 举报
回复
不错!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧