ASP经典中的递归数据库调用

时间:2014-06-17 11:21:59

标签: asp-classic recursive-query

我正在使用ASP Classic,我希望在我的页面上显示实时标签,指示当前有多少用户正在使用我的页面。

方案: 我有这个标签:

Current # of Users: 53     ---> 53 being the real time label

我想让它在有人进出时更新。

他们说这叫做递归功能,但我不知道应该怎么做。

请帮忙。 谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用JavaScript和Classic ASP混合设置一个简单的监视器,或者使用JQuery来调用ASP代码中的查询函数。

就个人而言,如果你正在寻找相当轻量级的东西,我会使用JavaScript(毕竟,整个JQuery库必须通过管道输送到客户端浏览器,虽然相当小,但它仍然是〜95k可以更好地使用!)。

我会设置一个标准的VBScript / JScript页面来首先从数据库中提取信息。

在您的网页上设置div以包含信息:

<div id="userCount"></div>

接下来,使用类似以下功能的内容将ASP页面中的信息提取到您创建的div ...

/*
    AJAX extension to allow dynamic interaction between pages.

    This section initialises the variable used to store the XMLHTTP request object.
*/
var xmlhttp;
if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari...
    xmlhttp=new XMLHttpRequest();
}
else {
    // code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

/*
    ajaxPage
        Posts a request to the scripted specified page.
    Parameters:
        postPage (string) - The page to be opened.
        paramList (string) - The list of parameters/values to be applied to the page.
    Usage:
        var targetBlock = document.getElementById("resultDiv");
        targetBlock.innerHTML = ajaxPage("resultsPage.asp","calcVal=545")
    Description:
        This routine uses the xmlhttp requesting tools within JavaScript to act as an intermediary between
        script and page.  Specify all paramters in the paramList by separating with an ampersand (&).
*/
function ajaxPage(postPage, paramList) {
    xmlhttp.open("POST",postPage,false);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(paramList);
    return xmlhttp.responseText;
}

然后在页面标题中设置JavaScript timer,如下所示:

<script>
    // Every 10 seconds execute the following...
    setInterval('document.getElementById("userCount").innerHTML = ajaxPage("myAspCounterScript.asp", "")', 10000);
</script>

请注意,我现在只能对自己的帖子发表评论(50次以下,但随时可以提问)...