Autor Zpráva
quatzael
Profil
Řeším problém, který jsem už načal v tomto vlákně: Jak vytvořit preload animaci po odeslání formuláře?

Ve stručnosti: po odeslání formuláře trvá nějakou dobu než se zpracují data. Proto tam mám na vstupující stránce funkci flush(), pomocí, které načtu první část stránky včetně animovaného spinneru. Po dokončení zpracování dat se odešle zbytek stránky a spinner zmizí.

Problém je ten, že základní konstrukce stránky vypadá zhruba takto:
<div id="header"></div>
<div id="left-part" style="float:left"></div><div id="main-part"  style="float:right"></div>
<div id="sticky-footer"></div>

V main-part je vždy umístěn faktický obsah stránky.

Zatím jsem to měl udělané tak, že jsem pomocí té funkce flush() zobrazil tu část před main-part a po zpracování dat ten zbytek.
Ale není to úplně ono, protože půlka stránky při načítání nevypadá moc dobře.

Proto bych spíš chtěl tou funkcí flush() zobrazit celou stránku a následně po načtení do toho elementu main-part vložit obsah, na který se čeká.

Napadlo mě to vyřešit javascriptem, kdy bych po načtení vložil na konec script a do něj dal $("#main-part").html(obsah_stranky);

Problém je trochu ten, že nevím jestli jsou všechny prohlížeče ok s tím že <script> následuje až po </html> a není uvnitř a pak taky to, že ten obsah_stranky je opravdu obsáhlej. Tak nevím jak moc je to náročný pro prohlížeč mít v jedné proměnné tolik dat.

Další možnost, která mě napadla by bylo nějak po načtení stránky javascriptem smazat všechno od main-part dolů, ten celý konec stránky a následně tam vypsat main-part i s obsahem a zbytek stránky znovu.

Ale to druhý řešení mi připadá moc komplikovaný a neumím si představit, že by fungovalo dobře..

Nemáte prosím někdo nějaký nápady jak by tohle šlo vyřešit?
Keeehi
Profil
quatzael:
Ještě je tu jedna možnost. Ten spinner zobrazit už na stránce, která formulář odesílá. Tedy formulář odeslat AJAXem nebo do skrytého iframu, a zobrazit spinner. Po dokončení zpracování už jen přesměrovat kam potřebuješ.
quatzael
Profil
Keeehi:
To vypadá asi jako nejlepší řešení. Díky moc za radu!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: