Вот что я бы сделал при реализации этой клиентской стороны.
Это было бы довольно легко сделать, используя вызов Ajax. Установите div на своей странице, чтобы при первом вызове Ajax отображалось сообщение «Генерация ... пожалуйста, подождите». (Простого анимационного графического изображения, не обладающего воображением, было бы достаточно, чтобы определить ожидаемое пользователем ожидание операции. Convention = понимание = хороший интерфейс.) Затем передайте функцию в обработчик readystatechange, который обновляет div с сообщением / графиком прогресса после возврата запроса Ajax.
function ShowPendingOperation(){
var resultHolder = document.getElementById( 'statusDiv' );
resultHolder.innerHTML = "Your data is loading... <img src='yourProgressAnim.gif'>";
var request = GXmlHttp.create();
request.open("post", "/yourScript", true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.onreadystatechange = function() {
if (request.readyState == 4) {
resultHolder.innerHTML = "operation complete";
resultHolder.innerHTML += "result1";
resultHolder.innerHTML += "result2";
resultHolder.innerHTML += "etc";
}
}
request.send( 'field1=data1&field2=data2' );
}
Обратите внимание, что приведенный выше фрагмент взят из примера кода, написанного для сайта Google Map, вероятно, ваша строка, создающая объект XMLHttpRequest, будет отличаться ...