Лучший способ выполнить долгий запрос DB в классическом ASP?

Я склонен еще помещать на всю свою IFS.

if (condition)
{
    complicated code goes here
}
else
{
    /* This is a comment as to why the else path isn't significant */ 
}

Даже при том, что это раздражает моих коллег. Можно сказать сразу, что я еще рассмотрел случай во время кодирования.

6
задан Luke Girvin 30 October 2019 в 14:02
поделиться

2 ответа

Идея асинхронного запроса работы и организации ее последующей доставки кажется мне очень разумной. Я недостаточно хорошо говорю на ASP, чтобы понять, что вам не нравится в вашей попытке, но действительно ли это серьезный вызов? Будет ли служба seb также страдать от таймаута HTTP-соединения?

Мой подход заключался бы в том, чтобы запрос Ajax помещал запрос в очередь и возвращался, нет необходимости в перенаправлении, вы все еще находитесь на странице, где пользователь делает запрос, ваш JavaScript может просто подтвердить, что запрос был отправлен. В качестве альтернативы может работать ваша более традиционная оценка «отправить страницу, спрятать запрос, отобразить другую страницу», но спрятать можно просто для помещения запроса в очередь.

Преимущество подхода с очередями состоит в том, что, контролируя количество демонов, мы можем получить управляемый параллелизм при обслуживании запросов - избегая перегрузки БД. Кроме того, очереди могут сохраняться и позволять неторопливую доставку ответов.

Я предполагаю, что затем очереди MS позволяют демону обрабатывать повторный запрос и доставлять ответы. Ясно, что электронная почта работает, но кажется мне немного недружелюбной. С интерфейсами в стиле Ajax было бы довольно легко незаметно опрашивать статус запросов и получать результаты, когда они будут готовы, или даже использовать push-доставку ответов в стиле Comet.

Я предполагаю, что очереди MS позволяют демону обрабатывать повторный запрос и доставлять ответы. Ясно, что электронная почта работает, но кажется мне немного недружелюбной. С интерфейсами в стиле Ajax было бы довольно легко незаметно опрашивать статус запросов и получать результаты, когда они будут готовы, или даже использовать push-доставку ответов в стиле Comet.

Я предполагаю, что очереди MS позволяют демону обрабатывать повторный запрос и доставлять ответы. Ясно, что электронная почта работает, но кажется мне немного недружелюбной. С интерфейсами в стиле Ajax было бы довольно легко незаметно опрашивать статус запросов и получать результаты, когда они будут готовы, или даже использовать push-доставку ответов в стиле Comet.

3
ответ дан 17 December 2019 в 07:07
поделиться

Проблема здесь, как заметил djna , в том, что вы не вызываете функцию обратного вызова. Из-за асинхронного аспекта Ajax вы настроили функцию обратного вызова, которая будет выполняться при завершении вызова Ajax.

Короче говоря:
Вызов веб-службы из функции javascript, предпочтительно с использованием JQuery, чтобы избежать перекрестного просмотра несовместимости

Код:

<div id="results">Processing query. Please wait</div>

<script type="text/javascript">
$(document).ready(function(){
    $("#results").load("http://wwww.mywebsite.com/service/query.asmx/GetResults?email=test&Rnd=" + Math.random().toString()); 
});
</script>
1
ответ дан 17 December 2019 в 07:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: