Получать данные постепенно из результата запроса к базе данных - PullRequest
0 голосов
/ 06 июля 2018

Я использую db_query () для выбора данных из базы данных PostgreSQL. Есть ли способ постепенно извлекать данные из результата запроса, созданного из файла PHP, связанного с AJAX? Вот пример попытки, которая использует упрощенное присвоение переменной:

PHP-файл:

<?php
if (isset($test_var)) {
  echo $test_var;
}
else {
  echo "undefined";
  $test_var = "Variable has been set";
  //$test_var = db_query("...");
}

Источник (главная страница):

<input type="submit" name="submit" value="Submit" onclick='click_query()'/>
<div id="myDivD" style="display: none;"></div>

<script>
function click_query() {
  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } 
  else { 
    // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
    if (this.readyState==4 && this.status==200) {
      document.getElementById("myDivD").innerHTML=this.responseText;
      alert(this.responseText);
    }
  }
  xmlhttp.open("GET","/sites/all/modules/afb/afb.php, true);
  xmlhttp.send();
}
</script>

Я был оптимистичен, что это может сработать, но не сильно удивился, что это не удалось. Только "неопределенное" было возвращено.

Ранее я пытался делать все на стороне клиента (с PHP / Javascript), что приводило к медленному времени загрузки. С тех пор мой набор данных значительно увеличился (почти в 100 раз). Я пытаюсь выполнить больше обработки на стороне сервера с помощью AJAX. В идеале я бы мог выполнить пользовательский запрос SQL, продиктованный пользователем, один раз и извлечь выбранные строки из результата запроса, чтобы заполнить страницу. Однако я не смог найти способ сохранить результаты SQL-запросов в памяти, не передавая все на сторону клиента. Это сделало бы необходимым повторное выполнение запроса, что привело бы к непрактичному времени загрузки.

Запросы достаточно сложны, поэтому сохранение конкретных результатов запроса на стороне сервера нереально. Разве возможно, что данные могут быть сжаты и постепенно распакованы на стороне клиента для экономии памяти и максимизации производительности? Есть ли способ сохранить ссылку на файл PHP через AJAX до тех пор, пока главная страница не будет обновлена ​​или изменена (чтобы не потерять назначенные переменные)? Хотя у меня нет большого опыта работы с jQuery, меня также интересуют возможные решения jQuery (который является предпочтительным методом реализации AJAX).

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