没分了 求大家帮我解决一个JS读XML的问题
没分了 自己太菜 临时抱佛脚 不如抱抱 各位大侠了.
源代码我写在下边
主要思路就是 让JS函数 每秒读一次XML文件,如果XML文件被更新 则给出提示
现在的问题是:
在本地测试这个代码是好用的,传到服务器上以后就出现了问题
XML明明已经被更新过了 但要等5-10分钟左右 才会得到更新结果.
已经禁用了ASP缓存 HTML页缓存.
我心里的目标是 误差不超过2秒.....可是现在...
<script language=javascript>
function fun()
{
var orderDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
orderDoc.async = false
//orderDoc.setProperty("ServerHTTPRequest", true);
orderDoc.load("../../xx.xml");
var items = orderDoc.selectNodes("/Order/Item");
function getNode(doc, xpath) {
var retval = "";
var value = doc.selectSingleNode(xpath);
if (value) retval = value.text;
return retval;
}
var message
message = getNode(orderDoc, "/Order/Item[ 0 ]/SKU");
alert(message)
if (parseInt(message) == 1)
{
alert("提示:系统更新!");
}
}
setInterval("fun();",1000);
</script>
问题点数:0、回复次数:6Top
1 楼billy36()回复于 2004-12-03 02:57:31 得分 0
不知道你用什么更改XML文件的
用ASP 读取数据并用ASP生成XML比较好 速度和实时性比较好
提供XML数据的ASP页面 LOGINXML.ASP
<%
set rs = server.createobject("adodb.recordset")
rs.source = "select top 1或者其他你想要的数目 * from 字段名 where 你想设定的条件"
rs.open rs.source,conn,1,1
读取你想要的数据
rs.close
%>
<?xml version="1.0" encoding="gb2312" ?>
<plan>
<xxx><%=xxx%></xxx> 你想读取的其他数据
<xxx><%=xxx%></xxx>
</plan>Top
2 楼CnPower(CN)回复于 2004-12-03 03:14:41 得分 0
我不是你这样做的.
但是XML文件是没错的 是用ASP操作 .xml 文件.
我看过 .xml 文件 确实是被更新过了 我ASP操作后也关闭了对象了
我现在想是不是我在用JS的时候没关闭XML对象???
可是本地测试又是无问题的 头晕中..
我不会用JS关闭XML对象 谁有代码能提供下?Top
3 楼CnPower(CN)回复于 2004-12-03 03:16:08 得分 0
而且想楼上说 用ASP来生成XML.
那样的话 JS还能刷新到更新过的XML了吗??
如果能的话 那是不是每次都要读数据库呢?Top
4 楼billy36()回复于 2004-12-03 04:51:00 得分 0
对如果不是每次读数据库的话怎么知道是否数据已经变化了
用这个吧这个我用的时候读取的时候比较顺利
<SCRIPT language=JavaScript>
<!--
function bar()
{
var oXMLDoc = new ActiveXObject('MSXML'); //创建'MSXML'对象
sURL = "loginxml.asp" //获取登陆状态数据的地址
oXMLDoc.url = sURL; //load数据
var oRoot=oXMLDoc.root; //获取返回xml数据的根节点
if(oRoot.children != null)
{
//根据返回的数据在客户端显示
ts=oRoot.children.item(0).text; //是否提示
xxx.innerHTML=oRoot.children.item(1).text; //其他你想的数据
}
timeoutid = setTimeout("bar()",1000) //每1秒取得一次数据,}
if (ts=1)
{
msg("有新纪录")//这个显示提示窗口的可能不对 没试 找个例子写上去就行
}
//-->
</SCRIPT>
<body onload="bar()">
用户:<font color="#FF0000"><span id=xxx></span></font> 显示数据
Top
5 楼billy36()回复于 2004-12-03 04:52:10 得分 0
loginxml.asp 你直接改成你的那个XML文件应该就可以了Top
6 楼CnPower(CN)回复于 2004-12-03 15:02:22 得分 0
我试下先...
现在的问题太痛苦了Top




