Рекурсивный вызов базы данных в классическом ASP

Я использую ASP Classic и хочу, чтобы на моей странице отображалась метка в реальном времени, указывающая, сколько пользователей в настоящее время используют мою страницу.

Сценарий: у меня есть этот ярлык:

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

и я хочу, чтобы он обновлялся, когда кто-то входит или выходит.

Они говорят, что это называется рекурсивной функцией, но я понятия не имею, как мне это сделать.

Пожалуйста помоги. Спасибо.


person carl    schedule 17.06.2014    source источник


Ответы (1)


Вы можете настроить простой монитор, используя сочетание JavaScript и классического ASP, или используя JQuery для AJAX вызова функции запроса в коде ASP.

Лично я бы использовал только JavaScript, если вы ищете что-то довольно легкое (в конце концов, всю библиотеку JQuery нужно было бы передать по конвейеру в клиентский браузер, и, хотя она довольно мала, все же ~ 95 КБ, которую можно было бы разместить). лучше использовать!).

Я бы настроил стандартную страницу 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 на своей странице. заголовок так:

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

Обратите внимание, что пока я могу комментировать только свои собственные сообщения (менее 50 повторений, но не стесняйтесь задавать вопросы)...

person Paul    schedule 17.06.2014
comment
Не уверен, почему скрипты, содержащие только javascript, считаются легкими... даже справедливо. Это файл размером 95 КБ, да... но что именно вы можете поместить на его место? Размер изображения составляет не менее 400 КБ, а средний автоматически сгенерированный скрипт .NET — не менее 10 КБ. Не говоря уже об улучшениях разработки, которые предоставляет jQuery, и всей поддержке сообщества. Тем не менее, ... хороший ответ. Почти на час раньше меня. :\ - person Eric Wu; 17.06.2014
comment
Это один маленький фрагмент JavaScript длиной в несколько байтов. Это делает страницу компактной. Если вы не собираетесь использовать большие разделы JQuery, то зачем их включать...? Это также классический ASP, а не ASP.NET. Я оставил комментарии в качестве ориентира - их можно убрать, и даже разрывы строк... - person Paul; 17.06.2014
comment
Да, я знал, что это классическая тема ASP, как видно из тегов. Это был просто пример. Тупо, глупо, но тем не менее пример. Моя точка зрения заключалась в том, что даже в простых приложениях усовершенствования разработки jQuery могут (даже если вы не согласны) быть весьма полезными, в основном, если (и не предполагая, что вы) начинаете разрабатывать сейчас . И я не критиковал ваш ответ... это было просто добавление. - person Eric Wu; 17.06.2014
comment
Тогда ладно; по теории, которую вы изложили выше, вам нравится Microsoft Office? Если да, то устанавливаете ли вы все до последней части или только те части, которые вам действительно нужны? Мое обучение программированию началось во времена, когда память была маленькой и дорогой, а скорость была приоритетом. На мой взгляд, скорость все-таки премиальная вещь, особенно когда речь идет о чужом компьютере - ты не знаешь, что там. Например, я знаю парня, у которого до сих пор есть старый модем на 56 КБ (так что вы говорите о скорости загрузки около 33 КБ). Используют ли снайперы автоматы? Неа... - person Paul; 17.06.2014
comment
Нет, даже если бы я любил Microsoft Office, я бы не стал устанавливать все, что в нем есть, но я не понимаю, почему он вписывается в этот контекст: jQuery не обязательный. Если вы считаете 95 КБ большим файлом, то изображения будут совершенно неуместны, не так ли? Тем не менее... Черт, твой ответ был достаточно хорош. Все, что я сказал, было дополнением. - person Eric Wu; 17.06.2014
comment
:о) Спасибо. Даже изображения, которые я стараюсь максимально сжимать. Я видел несколько ужасных сайтов, использующих массивные несжатые изображения... Но да, я знаю, о чем вы говорите. - person Paul; 17.06.2014
comment
Давайте продолжим это обсуждение в чате. - person Eric Wu; 17.06.2014