在javascript中轮询ASP应用程序变量

时间:2014-01-30 04:12:51

标签: javascript

我有以下代码来轮询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>

1 个答案:

答案 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该简单服务器页面的成本。