У меня сейчас есть веб-страница, загрузка которой занимает некоторое время. PHP сторона страницы выполняет большую часть обработки данных и вычислений, и это (к сожалению) неизбежно. Я хотел бы отобразить что-то на странице во время обработки php. К сожалению, большая часть страницы зависит от вычисления php.
Текущее решение, которое у меня есть, следующее:
HTML / PHP (начало):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title id="title">Loading</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="preLoading.js"></script>
</head>
<body onload="onLoad()">
<?php
flush();
?>
<?php
// computation.
?>
JavaScript:
document.write('<span id="loading">Please wait... Loading and processing data.</span>');
function onLoad() {
if (document.getElementById) {
var loading = document.getElementById("loading");
loading.style.display="none";
}
}
Это хорошо работает в том смысле, что во время рендеринга страницы отображается небольшое сообщение ожидания, пока страница рендерится. Но это не работает в том смысле, что страница все еще ожидает получения всех данных, прежде чем что-либо визуализировать. Как я могу выполнить последнее?
Одно замечание: пустая строка перед doctype содержит 1024 пробела, потому что в некоторых местах (включая StackOverflow) я читал, что браузеры ждут, пока не прочитает определенное количество символов, прежде чем пытаться что-либо отобразить.
Любые идеи будут оценены. Браузеры полны тайных уловок и взломов, которые меня озадачивают.