我有以下代码来轮询ASP中的应用程序变量。下面的代码第一次工作,这意味着当我第一次启动页面时,如果应用程序(“NFC”)= 1,则setinterval函数中的IF语句将捕获它,显示警报然后重新加载页面。问题是页面正在运行,如果另一个页面再次将Application变量设置为1,则下面的if语句将不再触发。如果我手动刷新页面,它将再次工作一次。
我放在头部和身体中,结果相同。
有谁知道为什么会这样,以及我能做些什么才能让这个工作?
此代码用于最小化访问数据库。我现在每20秒访问一次数据库,这将允许我只在应用程序变量发生变化时访问数据库,每5秒轮询一次变量。
非常感谢任何帮助。
谢谢你......
<%
If request.querystring("R") = "reset" then
Application("NFC") = 0
response.redirect("test2.asp")
end if
%>
<script type="text/javascript">
setInterval(function(){
if('<%= Application("NFC")%>'== '1'){
alert('NFC has changed. This alert is for testing and is not needed in final code');
self.location='test2.asp?R=reset';
}
}, 5000);
</script>
答案 0 :(得分:0)
基本上任何ajax例程都可以,jQuery比现代浏览器示例更强大:
server.asp:
<%= Application("NFC")%>
client.js:
function aGet(turl, callback) {
var XHRt = new XMLHttpRequest();
XHRt.onload= callback;
XHRt.open("GET", turl, true);
XHRt.send("");
}
aGet("server.asp", function(e){
alert(e.target.responseText);
});
一旦你看到它,它很简单,但很难搜索。那必须是有史以来最简单的后端代码...... 使用未充分使用但令人敬畏的RAM缓存是应用程序对象的荣誉:如果使用正确,它可以启用非常实时的应用程序,这可以忽略ping该简单服务器页面的成本。