Autor | Zpráva | ||
---|---|---|---|
tatyalien Profil |
#1 · Zasláno: 1. 4. 2011, 10:46:23
Dobrý den,
používám tento index (tady trochu osekaný) <?php session_start(); require "./include/funkce_all.php"; // nyní si ošetřím vstup zadný od uživatele / linku (pro případný útok z venčí...) $nactena_stranka = isset($_GET['clanek']) ? preg_replace('/[^a-z0-9_\\-]/i', '', $_GET['clanek']) : 'default'; if ($_GET["clanek"]=="prihlaseni") { Prihlaseni($_POST["prezdivka"], $_POST["heslo"]); } elseif ($_GET["clanek"]=="odhlaseni") { // zde unsetnu sessiony (zde je to zkrácené) session_destroy(); } // načtení části skriptu, pokud existuje if (file_exists("scripts/$nactena_stranka.php")) { //sem muzes nacpat skript ktery neco provede a pak se v pripade potreby presmeruje jinam (aplikacni cast) require "scripts/$nactena_stranka.php"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <head> <title> Titulek... </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <?PHP // načtení css echo "<link href='{$GLOBALS["CestaProOdkaz"]}/css/muj_styl.css' rel='stylesheet' type='text/css' />"; ?> <body> <div id="zahlavi"> <?php if (isset($_SESSION["id"])) { echo '<div class="menu">'; require "content/menu_horni.php"; echo '</div>'; } else { echo "Menu se zobrazí po přihlášení uživatele."; } ?> </div> <div id="obal_obsahu"> <div id="menu_leve"> <?php require "content/menu_leve.php"; ?> </div> <div id="menu_prave"> <?php require "content/menu_prave.php"; ?> </div> <div id="obsah_vnitrni"> <?php if($odhlaseni_na_tvrdo != '') echo '<tag class="error">'.$odhlaseni_na_tvrdo.'</tag>'; ?> <?php // sem nacpes zobrazovaci cast stranky require "content/$nactena_stranka.php"; ?> </div> <div id="zapati"> <!-- zápatí --> bla bla </div> <!-- zápatí konec --> </div> </body> </html> Ale u déle trvajících operací se vždy čeká až se skript provede (načítá se nejdříve aplikační část skriptu). Na webu jsem si našel skript (byl i zde pár vláken zpět): echo "<div id='test'>Průběh: <span id='counter'></span>\n"; $total = 20; $printed = 0; for ($i=0; $i < $total; $i++) { sleep(rand(0, 2)); // dlouhotrvající operace if (time() >= $printed + 3 || $i+1 == $total) { // aktualizace počítadla nejdříve za tři vteřiny echo "<script type='text/javascript'>document.getElementById('obsah_vnitrni').innerHTML = '" . round(100 * ($i+1) / $total) . "%';</script><noscript>.</noscript>\n"; ob_flush(); flush(); $printed = time(); } } Mě zajímá, zda je nějak možnost načíst správně "layout" a zobrazovat načítání v procentech až v divu: obsah_vnitrni, to je hlavní div, kde vypisuji vše... Zkoušel jsem to i tak, že se mě načte prázdná stránka, ukazuji ukazatel, ale pak nemohu ani uložit výstup do sessionu a redirectnout zpět na stranáku a vypsat "údaje", protože už je výstpu z javascriptu... |
||
Nox Profil |
#2 · Zasláno: 1. 4. 2011, 11:31:12
však to tak máš, ne? akorát vyměň "obsah_vnitrni" za "counter" (a to echo v druhé části by mělo být na správnym místě)
|
||
tatyalien Profil |
#3 · Zasláno: 1. 4. 2011, 11:56:19 · Upravil/a: tatyalien
Nox:
právě, že nemám... nyní se mě totiže nejdřív spustí "dlouhotrvající operace" (řádek 14-17). a až pak se mě začne natahovat stránka (layout) řádek 19... |
||
Nox Profil |
#4 · Zasláno: 1. 4. 2011, 16:45:11
tak to volej až pak
|
||
tatyalien Profil |
#5 · Zasláno: 1. 4. 2011, 19:04:44
Nox:
No budu asi muset ;), dík za nakopnutí. |
||
Časová prodleva: 13 let
|
0