I de fleste tilfælde ville du har to sider. Den første side, klientsiden, foretager et opkald til en anden side, serversiden, og viser en smuk snurrende ting, mens den venter. Når siden på serversiden er færdig med at indlæse (når din forespørgsel er fuldført), modtager din første side et svar, og så kan du skjule den smukke snurrende ting for at lade din bruger vide, at den er færdig.
Du kan bruge AJAX - i rent Javascript eller meget enklere i jQuery - til dynamisk at indlæse nogle data fra din PHP-side og vise en snurrende ting, mens den venter. Jeg har brugt jQuery her.
CSS
#loading_spinner { display:none; }
HTML
<img id="loading_spinner" src="loading-spinner.gif">
<div class="my_update_panel"></div>
jQuery
$('#loading_spinner').show();
var post_data = "my_variable="+my_variable;
$.ajax({
url: 'ajax/my_php_page.php',
type: 'POST',
data: post_data,
dataType: 'html',
success: function(data) {
$('.my_update_panel').html(data);
//Moved the hide event so it waits to run until the prior event completes
//It hide the spinner immediately, without waiting, until I moved it here
$('#loading_spinner').hide();
},
error: function() {
alert("Something went wrong!");
}
});
PHP (min_php_side.php)
<?php
// if this page was not called by AJAX, die
if (!$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') die('Invalid request');
// get variable sent from client-side page
$my_variable = isset($_POST['my_variable']) ? strip_tags($_POST['my_variable']) :null;
//run some queries, printing some kind of result
$SQL = "SELECT * FROM myTable";
// echo results
?>