[elektro] Cifra HTML kérdéske..
potyo
potyo.ada at gmail.com
Thu Oct 20 10:00:19 CEST 2011
Vagy ajaxszal kéred le az adatokat, vagy nem zárod le az oldal lekérésekor a
kapcsolatot, hanem részletekben íratod ki. Utóbbit meg tudja akadályozni, ha
a szerveren be van kapcsolva a kimenet tömörítése, de valami ilyesmi kellene
neked:
<html>
<head>
....
<body>
<?
for ($i=0;$i<120;$i++)
{
echo $i.'<br/>'.str_repeat(' ',1024);
flush();
sleep(1);
}
?>
</body>
</html>
A str_repeat azért kell, mert a szerver (vagy a böngésző, ezt nem tudom most
hirtelen) összevár valamennyi adatot, és csak akkor küldi ki (dolgozza fel),
és így gyártunk neki "üres" adatokat, aminek html szempontból semmi szerepe,
de bekerül a pufferbe. A flush() kiküldi a puffer tartalmát a szerverről a
böngészőnek.
A másik, lehetőség az ajax, aminek az a lényege, hogy a böngésző a háttérben
másodpercenként lekérdezi a szervert, hogy van-e valami új adat, és ha van,
akkor módosítja a böngészőben az oldal tartalmát. Keresel egy jquery.js
fájlt, majd csinálsz egy ilyesmit:
<html>
<head>
<script type="text/javascript" src="megadod a jquery.js fájl
elérését"></script>
<script type="text/javascript">
$.ajaxSetup({
cache:false,
type:'POST' //vagy GET
});
var i=0;
function ajax_keres()
{
$.ajax({
url:ahonnan az adatokat akarod szedni,
data:$.param(
{
parameter1:ertek1,
parameter2:ertek2
}),
success:function(amit_kuld_a_szerver)
{
$('#ide_jonnek_az_adatok').val($('#ide_jonnek_az_adatok').val()+'<br/>'+amit_kuld_a_szerver);
}
});
i++;
if (i>=120) clearInterval(tt);
}
tt=setInterval('ajax_keres()',1000);
</script>
</head>
<body>
<div id="ide_jonnek_az_adatok"></div>
</body>
</html>
Meg lehet a kettőt kombinálni is, de olyat még én sem csináltam, szóval arra
nem tudok mutatni kódot így fejből :-))
2011. október 20. 9:30 Elight írta, <elight at gmail.hu>:
> Sziasztok,
>
> de az is lehet hogy PHP?
>
> Egy programmal mérési adatokat küldenék ki honlapra
> egy start gomb megnyomása után
> egy sima hagyományos ciklussal vezérelve..
> Az eredmények sorai másodpercenként állnak össze.
>
>
> Legyen a ciklus számláló 120
> az időzítés 1 másodperc.
> Tehát két perc alatt
> 120 db sort szeretnék kinyomtatni ,
> de nem a nyomtatóra ,
> hanem a HTML file-ba.
>
> Ha ezt ugy teszem meg
> hogy a HTML programba beillesztem a PHP-s
> kiiró ciklust , akkkor a böngésző
> akkor jeleníti meg az eredményeket ,
> ha programciklus lefutott és a lábléc
> is kiírásra kerültés elérte a </HTML>
> utasítást. De ez a 120 adat
> lekérdezése és printelése után ,
> tehát 2 perc mulva következik be.
> Addig ures a kijelző , csak alul
> a progress bar jelzi, hogy betöltés folyamatban.
>
> Ha simán formattálatlanul csak
> a php-t futtatom , és a print-el
> másodpercenként íratom ki az datokat ,
> akkor minden ciklusban
> megjelenik egy kiírási sor a böngészőben ,
> ( ahogy a szalagos printeren is tenné ) .
>
> Na ez bonyinak tűnik ,
> megpróbálom konkrétan kérdezni,
> Már pár HTML, PHP könyvet vévig rohantam
> és nem igazán találtam meg még a választ.
>
> ..
>
> Tehát
> Hogyan lehet HTML -ben azt előidézni ,
> hoogy a böngészőbe beérkező adatsorok
> folyamatosan kiíródjanak ,
> ne csak a teljes HTML lap beérkezése
> után jelenjenek meg a képernyőn
> egyben az egész lap?
>
> Ez böngésző, vagy programfüggő,
> esetleg valami beállítással vagy
> utasítással kikényszeríthető lenne?
>
>
> Üdv István
>
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list