|
|
|
Supreme Being
      
участник
Last Login: 06.03.2007 16:42
Сообщ.: 332,
Visits: 3 576
|
|
Есть некоторая БД.
Запросы к ней выполняются через сторонний драйвер. Запросы выполняются очень медленно. Чтобы юзер не нервничал, нужнор сделать что-то вроде progressbar (как при установке любого софта).
Возможно ли это сделать и в какую сторону смотреть ?
Может быть у кого-то есть примеры ?
Спасибо.
З.Ы : В базе от 1000 записей. Простой селект выполняется несколько минут ...
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
По моему ProgressBar не получится сделать. Ведь для этого тебе нужна двухсторонная связь [italic]БД <-> веб сервер <-> клиент[/italic]. То есть база данных должна сообщить коду на веб-сервере сколько она сделала работы, а сервер должен уведомить клиента. Проблема будет уже с первым шагом. Я лично не встречал механизмов подобного уведомления.
Что можно сделать так это что-то вроде экрана ожидания загрузки. Делаем наверху страницы кусок с сообщением "подождите идет загрузка". Причем надо добиться чтобы эта часть сразу показывалась клиенту. То есть, сам ASP код должен быть ниже этого куска HTML и для гарантии что данные были отправлены нужно вызывать Response.Flush.
Основное содержимое страницы выводится в "невидимую" область страницы скрытую средствами CSS (display:none). По событию onload скрываем сообщение "подождите идет загрузка" и показываем основной текст страницы.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 24.08.2008 22:23
Сообщ.: 1 329,
Visits: 15 054
|
|
Используй DHTML, серверный скрипт отправляет пользователю данные, на основе которых клиентская функция отрисовывает текущее состояние дел. Естественно алгоритм выборки данных должен это позволять.
Если просто делаешь SQL запрос и ждешь его выполнения, такая схема не пройдет. В таком случае проще повесить анимированный гиф с псевдо прогрессом.
|
|
|
|