Алгоритм подкачки — это проблема, которая очень беспокоит веб-разработчиков. Почти каждое приложение, связанное с базой данных, использует алгоритм подкачки. Многие люди написали документы в этой области, и кажется, что обсуждать нечего, но на самом деле давайте изменим; Изменив представление данных, можно использовать лучший алгоритм разбиения на страницы. Посмотрим, сможем ли мы добиться большего.
Давайте сначала поговорим о некоторых существующих методах.
Один из них — постраничная обработка данных через DataGrid. Этот метод является самым простым, но он неэффективен и требует чтения всех данных перед необходимыми данными.
Второй — заполнить метод подкачки DataSet, указав начальную запись и номер записи DbDataAdapter.Fill. Этот метод также прост, но также неэффективен и требует чтения всех данных перед необходимыми данными.
Третий — выбрать нужные записи из середины таблицы через множественный выбор сверху и множественную сортировку, чтобы предотвратить повторение данных на соседних страницах, необходимо использовать not in, что приведет к появлению хвостовых данных; таблица с большим объемом данных, которая будет выбрана, производительность базы данных будет значительно снижена.
Предположим, мы изменяем форму представления таблицы, взяв в качестве примера представление Grid с полосами прокрутки в традиционном приложении C/S. Фактически, этот метод является наиболее подходящим методом представления для таблиц базы данных и широко используемым методом представления в; Веб-приложения Метод подключения номера страницы 1,2,3... или метод полосы просмотра номера страницы для кнопок предыдущей страницы и следующей страницы являются последним средством, поскольку простая технология не может использоваться для реализации полос прокрутки в веб-приложениях. Сетка.
Все таблицы в базе данных имеют первичные ключи для различения различных записей в таблицах; данные в таблице пользовательского интерфейса также логически имеют первичные ключи, в противном случае данные будут неоднозначными. Однако в большинстве приложений настройка отсутствует. Невозможно узнать первичный ключ считываемых данных, даже если несколько приложений установили его, они знают первичный ключ считываемых данных, но фактически не применяют его к подкачке, если вы знаете; первичный ключ считанных данных, вы можете очень легко выполнить подкачку.
Алгоритм создания главной страницы очень прост.
выбрать размер верхней страницы * в порядке имени таблицы по первичному ключу.
Для таблиц с полосами прокрутки данные прокручиваются последовательно, страница за страницей. Даже если вы перетаскиваете полосу прокрутки, вы можете прокручивать страницу за страницей до выбранной позиции. алгоритм для новых страниц такой
выберите размер верхней страницы * из имени таблицы, где первичный ключ > первичный ключ, записанный в конце предыдущей страницы, порядок по первичному ключу.
Если используется кэширование, все данные необходимо загрузить только один раз, а новые данные будут загружаться только при прокрутке до конец.
Этот алгоритм требует знания первичного ключа данных в Grid и применения данных первичного ключа к подкачке для нескольких первичных ключей и отсортированных таблиц. Алгоритм тот же, но инструкции более сложны. Вы можете не только начать с домашней страницы, но также можете начать с последней страницы и прокручивать вперед.
Нет проблем с производительностью этого алгоритма. Независимо от размера таблицы, запись, в которой выбирается позиция, является одинаковой. Более удобно использовать метод выбора страниц: домашняя страница, предыдущая страница, следующая страница и. последняя страница и больше подходит для полос прокрутки. Сетка не подходит для нумерации страниц с указанными номерами.
Информацию о сетке с полосами прокрутки, использующей этот алгоритм, см. в нашей демонстрации www.BizStruct.cn .
При возникновении вопросов, пожалуйста, учтите в первую очередь два момента, иначе вы можете не осознать преимущества объединения этого алгоритма с нашей системой:
Во-первых: какой из них более удобен: традиционная форма заявки на участие в C/S или форма пейджинга в Интернете?
Во-первых, насколько таблица с полосами прокрутки, которую мы реализовали, отличается от таблицы в традиционных приложениях C/S.
Пояснение ответа:
В некоторых ответах говорилось, что такие операции, как «перейти на страницу xx», реализовать невозможно.
Но давайте подумаем об этом: в среде приложений C/S, если кто-нибудь использует этот метод перехода по страницам, всем это определенно покажется странным.
Реализованная нами Grid с полосами прокрутки работает почти так же быстро, как и предыдущее приложение C/S, в среде LAN, а также очень быстро в среде WAN.
«Операция перехода на XX-страницу» веб-приложений на самом деле является последним средством. Если Grid традиционных приложений C/S может быть реализован, зачем нам его использовать?