Raketenwilli: Nachtrag

Beitrag lesen

Da habe ich mir gedacht, den Seiten-Kopf vorauszuschicken:

flush();
ob_flush();
sleep(2);

Beware!

Eine der „anderen Seiten“, die sowas anzeigt, ist von mir - allerdings schon etliche Jahre alt. Das Funktionsprinzip ist klar - aber das geht natürlich besser!

Dort gibt es ein wenig HTML:

 <div id="waitingFor">Daten werden geholt ...</div>

CSS:

#waitingFor {
    background-image:url(wait.gif);
    background-repeat:no-repeat;
    // …
}

Javascript:

function waiting_For() {
		document.getElementById( 'waitingFor' ).style.display = 'block';
		document.getElementById( 'data' ).style.display = 'none';
		return true; //Das ist wichtig!
}

Dazu, als Starter:

<form ... onsubmit="waiting_For();">

(Das geht auch mit Links, füge den passenden Events die Funktion waiting_For() hinzu )

und:

function my_load_ready () {
		document.getElementById( 'waitingFor' ).style.display = 'none';
    // ...
}

Dazu den Starter:

<body onload="my_load_ready()">

Gerade hinzugefügt:

window.addEventListener(
    'pageshow',
    function () {
        document.getElementById( 'waitingFor' ).style.display = 'none';
        document.getElementById( 'data' ).style.display = 'block';
        history.replaceState( null, null, window.location.pathname );
    },
    false
);

Das soll dafür sorgen, dass dieses „Bitte-warten-Dingens“ verschwindet, wenn man mit den Zurück- und Vorwärtstasten des Browsers navigiert.

Das war, wegen des aggressiven browser- und serverseitigen Cachings der Webseite nicht wirklich einfach… und ich hoffe das auch bei allen anderen spätestens nach 12h funktioniert.