Вопрос

Я разработал 3-уровневое приложение, и у меня возникла проблема с заполнением данных из базы данных.В моем приложении есть окно, которое запрашивает большие данные из базы данных, и этот процесс занимает очень много времени.(Мой клиент находится так далеко от сервера, и соединение между ним составляет 128 Кбит / с).

Затем я должен подумать о решении этой проблемы.Решение заключается в заполнении x записей данных каждые y секунд.(например,:сначала заполните 10 записей для отображения в пользовательском интерфейсе, а затем отображайте более 10 строк каждые 5 секунд).

Является ли это хорошим решением для решения этой проблемы?Есть ли лучший способ решить эту проблему?

Это было полезно?

Решение

Если это предназначено для отображения, вы должны использовать подкачку.Существует вариант этого, когда пользовательский интерфейс захватывает следующую "страницу" записей, когда пользователь пытается получить доступ к дополнительной информации с помощью полосы прокрутки.Если вам нужно объединить данные, сделайте это в запросе, чтобы все данные не передавались по сети.Если вам действительно / абсолютно необходимо получить все данные и выполнить с ними какие-то процессы, подумайте, будут ли они когда-нибудь слишком большими, чтобы загрузить их все сразу.В этом случае возьмите фрагменты данных, запустите связанные процессы, а затем возьмите другой фрагмент (и так далее).Несмотря на это, вам нужно сделать это с помощью подхода, который не блокирует пользовательский интерфейс (потоки / асинхронные операции).

Другие советы

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

Если вы думаете о веб-сайтах, то они почти всегда размещают данные на странице, чтобы не загружать их все сразу.

Можно ли выполнить отложенную загрузку (чтобы вы загружали данные по требованию, а не все сразу)?

Возможно, если пользовательский интерфейс приложения позволит, показывать записи на нескольких страницах.

Я бы также предложил использовать асинхронные вызовы для извлечения данных, чтобы вы не замораживали приложение во время запроса (если это настольное приложение).

Если это веб-приложение, рассмотрите возможность использования AJAX.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top