WedX - журнал о программировании и компьютерных науках

Как лениво загрузить стандартную html-таблицу с большим количеством строк?

Вместо того, чтобы использовать табличный плагин кем-то другим, я решил сделать это стандартным HTML-способом создания таблиц, строк и т. Д. И т. Д. Я бы извлек данные из базы данных для заполнения строк. Но когда количество строк превысило 10 000, я понял, что мне нужно lazy_load для строк, иначе веб-сайт будет невероятно медленным. Я искал способы ленивой загрузки строк таблицы, но нигде не могу найти, поэтому мой вопрос просто: подключаемый модуль отложенной загрузки или для строк< /strong> даже существует?

Надеюсь, что какой-нибудь гуру ответит на это. Заранее спасибо!

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

jQuery обеспечивает ленивую загрузку изображений и контейнеров изображений.

Некоторые другие плагины позволяют отложенную загрузку div.

Однако ленивая загрузка для строк таблицы, похоже, не существовала.

Пример кода для контекста:

HTML:

        <fieldset>
        <legend>PhotoViewer v1.6</legend>
        <h4 id = "albumName"><i>Photos</i></h4>
        <table cellspacing="1" border="2" id = "photoTable" class = "lazyProgressiveLoad">
            <tr style="font-style: italic; font-size: small; font-family: Segoe UI Light; color: Red">
                <th>--Photo--</th>
                <th>--Label--</th>
                <th>--Path--</th>
                <th><input type="button" value="Add Photo" onclick="addPhoto()" id = "addPhoto"/></th>
            </tr>
        </table>
    </fieldset>

Ищите какой-нибудь код, который обеспечит ту же функциональность, что и приведенный ниже код для строк таблицы.

Javascript:

$(function() {
      $("img").lazyload({
          effect : "fadeIn"
          /*
          ,appear : function(elements_left, settings) {
              console.log("appear");
              console.log(elements_left);
              //console.log(this, elements_left, settings);
          },
          load : function(elements_left, settings) {
              console.log("load");
              console.log(elements_left);
              //console.log(this, elements_left, settings);
          }
          */
      });
  });

  • У меня есть ответ на очень похожий вопрос с исходным кодом, включая проект, посмотрите, это может вам помочь: stackoverflow.com/a /10981815/159270 25.09.2012

Ответы:


1

Иметь тысячи строк данных в DOM — ужасная идея по одной простой причине: DOM работает медленно.

Вместо этого визуализируйте только те строки, которые должны быть видимыми. Когда строка исчезает из поля зрения, удалите ее из модели DOM.

Моя любимая библиотека для отображения сетки данных — SlickGrid. Отрисовывая только элементы DOM для данных в окне просмотра, он может эффективно отображать неограниченное количество данных с поразительной производительностью. (В этом примере отображается полмиллиона строк!)

Есть и другие примеры, демонстрирующие возможности SlickGrid, но вас особенно заинтересует Пример загрузки AJAX, где небольшие фрагменты строк передаются с сервера при прокрутке.

24.09.2012
  • есть ли какая-либо другая или новая библиотека в настоящее время? Последний коммит SlickGrid датирован 2016 годом. 29.10.2019

  • 2

    Я не слышал о плагине, который может делать что-то подобное, но я в основном избегаю причудливых JS-библиотек. При этом концептуально вы можете использовать запрос AJAX для выбора, например, изображений, где m>id>n, а затем в вашем javascript, когда вы хотите загрузить больше изображений, выполните еще один запрос ajax, но увеличьте m и n, например, на 100.

    Существует множество фреймворков галереи с открытым исходным кодом, которые работают по этому принципу, но обычно они генерируют страницу с помощью php вместо динамического изменения внутреннего html с помощью AJAX.

    Вот как получить данные базы данных из AJAX в JS. https://w3schools.com/ajax/ajax_database.asp

    24.09.2012
  • Ссылка не работает 29.10.2019
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    © 2024 wedx.ru, WedX - журнал о программировании и компьютерных науках
    Для любых предложений по сайту: wedx@cp9.ru