Ajax, jquery, PHP загружают данные в итерации
Вопрос, связанный с AJAX/PHP, есть ли способ перечислить 5000 записей одновременно, а затем добавить следующие 5000 записей в таблицу HTML и так далее до конца записей с помощью ajax - php
Загрузите скрипт по нажатию HTML-кнопки: или document.ready (), а также покажите индикатор выполнения.
Что я уже пробовал:
// counter that allows you to get a new set of rows var step = 0; // set variable if you want to restrict the number of rows will be loaded var maxStep = 0;// // how many rows should be returned var count = 5000; // if the cancel button is pressed var cancel = false; $(function() { $('#load').click(function(){ getData(); }) $('#cancel').click(function(){ cancel = true; }) }); function getData() { step++; //If cancel variable is set to true stop new calls if(cancel == true) return; // checks if the variable is set and limits how many rows to be fetched if(maxStep >0 and step >= maxStep) return; $.post('ajax.php' ,{ 'step':step, 'count':count, } ,function(data, textStatus, jqXHR){ if(textStatus == "success") foreach ($data as $row) { echo $row['username']." -- ID :" .$row['user_id']. " -- FirstName :" .$row['first_name']. "<br>\n"; } if(textStatus == "error") alert("Error: " + jqXHR.status + ": " + jqXHR.statusText); // when it finishes processing the data, call back function getData(); } ,'json' ) } ==== ajax.php ===== step = 0; if(isset($_POST['step'])) $step = (int)$_POST['step']; $count = 0; if(isset($_POST['count'])) $count = (int)$_POST['count']; if($step>0 and $count>0) { $offset = ($step-1) * $count; $limit = $offset.','.$count; // -------------- // your code here // -------------- $data = $DB->query("SELECT * FROM user_details LIMIT .$limit")->fetchAll(); $result = mysql_query($sql); $arr_result = array(); foreach ($data as $row) { $arr_result[] = $row; } $arr_result_enc = json_encode($arr_result); echo $arr_result_enc; // echo rows //echo json_encode($rows); }
MadMyche
Пожалуйста, используйте Improve Question
виджет и обернуть ваши блоки кода в блоки кода, что делает его намного легче читать. Также переместите свои "комментарии" в блок
Member 14093672
Сделано
Richard Deeming
Серьезно? Кто на самом деле собирается прокручивать 5000 записей за один раз, пытаясь найти ту, которую они хотят? Не говоря уже о бесконечном скроллере с размером страницы 5000.
Если пользователь может проверять одну запись в секунду, ему потребуется почти 90 минут, чтобы просмотреть одну страницу результатов. И это при условии, что им не нужно уходить на "перерыв комфорта" или даже моргать.
Предоставьте своим пользователям инструменты для поиска нужной им информации без необходимости прокручивать такой огромный список. Либо позвольте им искать или фильтровать данные, либо покажите им сводку.
Member 14093672
Серьезно, это своего рода требование, я могу рассмотреть возможность загрузки 1000 записей одновременно, @Richard вы знаете, что я делаю неправильно в своем сценарии. не могли бы вы предложить внести изменения в мой сценарий?