Мне нужно отобразить на моей странице список записей, извлеченных из таблицы. Ajax работает нормально (я запрашиваю базу данных и помещаю все данные в a на главной странице), но если у меня много записей (скажем, 500+), он будет зависать до полной загрузки данных, ТОГДА он будет отправлен обратно на страницу и правильно отображается.
Я хотел бы иметь возможность отображать записи на странице при их получении, вместо того, чтобы заставлять ждать до завершения. Я пытаюсь с flush (); внутри удаленной (ajax) страницы, но она все еще ожидает загрузки полных данных.
Это то, что у меня есть на странице ajax:
В самом начале:
@apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);
for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); }
ob_implicit_flush(1);
Тогда всякий раз, когда у меня есть эхо-вызов:
ob_flush();
Теперь, если я загружу страницу ajax в одиночку ... она будет перечислять записи при чтении их из базы данных. Но если я вызову ту же страницу через Ajax, она зависнет и отправит все данные сразу.
Есть идеи?
Это функция, которую я использую для получения содержимого ajax («id» является целью, «url» относится к странице ajax, которая выполняет запрос к базе данных для получения списка записей):
function ajax(id,url) {
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET",url,false);
xmlhttp.send(null);
document.getElementById(id).innerHTML = parseScript(xmlhttp.responseText);
}