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

#asp-classic #recursive-query

#asp-classic #рекурсивный запрос

Вопрос:

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

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

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

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

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

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

Ответ №1:

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

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

Я бы настроил стандартную страницу VBScript / JScript, чтобы сначала извлечь информацию из базы данных.

Настройте a 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 (amp;).
*/
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 повторений, но не стесняйтесь задавать вопросы)…

Комментарии:

1. Не уверен, почему скрипты только для javascript считаются легковесными … даже справедливо. Да, это файл размером 95 кб… но что именно вы можете поставить на его место? Размер изображения составляет не менее 400 КБ, а в среднем . ЧИСТЫЙ автоматически сгенерированный скрипт составляет не менее 10 КБ. Не говоря уже о улучшениях в разработке, которые предоставляет jQuery, и всей поддержке сообщества. Тем не менее, … хороший ответ. Почти на час впереди меня. :

2. Это один маленький фрагмент JavaScript длиной в несколько байтов. Это сохраняет страницу скудной. Если вы не собираетесь использовать большие разделы jQuery, то зачем их включать …? Это также классический ASP не ASP.NET . Я оставил комментарии в качестве руководства — их можно было удалить, и даже разрывы строк…

3. Да, я знал, что это классическая тема ASP, как видно из тегов. Это был просто пример. Скучный, глупый, но, тем не менее, пример. Я хотел сказать (думал, что это недостаточно ясно), что даже в простых приложениях улучшения разработки jQuery могут (даже если вы не согласны) быть весьма полезными, в основном, если (и не предполагая, что вы) начинаете разрабатывать сейчас. И я не критиковал ваш ответ, … это было просто дополнение.

4. Хорошо, тогда; по теории, которую вы представили выше, вам нравится Microsoft Office? Если вы это сделаете, то устанавливаете ли вы все до последней части или только те части, которые вам действительно нужны? Мое обучение программированию началось с того времени, когда память была маленькой и дорогой, а скорость была приоритетом. На мой взгляд, скорость по-прежнему имеет первостепенное значение, особенно когда вы говорите о чужом компьютере — вы не знаете, что там. Например, я знаю парня, у которого все еще есть старый модем 56K (так что вы говорите о скорости загрузки около 33K). Используют ли снайперы пулеметы? Нет…

5. : o) Спасибо. Даже изображения, которые я, как правило, сжимаю как можно больше. Я видел несколько ужасных сайтов, которые полагаются на массивные несжатые изображения… Но да — я знаю, о чем вы говорите.