Я использую 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).