Autor Zpráva
Charlie
Profil
Právě vyvýjím shoutboard (no, vyvíjím je silné slovo), spíš bych potřeboval zjistit, zda-li jde stránka reloadnout na požádání. Například vždy, když "přijde" nová zpráva. Nechce se mi tam dělat klasický reload po x vteřinách. Jde to tak, jak jsem popsal?
luka
Profil *
myslis refresh, ano?
Charlie
Profil
Ano, myslím refresh, reload, aktualizaci, obnovení...
luka
Profil *
tak sprav odkaz a posli s <a href='.$PHP_SELF.'>refresh</a>... tak bz to stacilo,nie
Charlie
Profil
Mno, to by mi nestačilo. Nechci to přes odkaz, ale automaticky.
Wysky
Profil *
Nestacilo by Vam obnovovani po urcitem case provadene napriklad javascriptem?

napr.:

<body onLoad="setTimeout('window.location.href=\"http://mojeadresa.com/\"',5000)">

php je serverscriptovy jazyk jen pomoci nej to vyresit nepujde.

s pozdravem Wysky
halogan
Profil
Spis bych za kazdych x sekund zavolal script, ktery by pres XmlHttpRequest natahl nova data...
Wysky
Profil
halogan: ale to se jen pomoci samotneho php resit neda nebo se mylim??
luka
Profil *
tak to urob klasicky
<meta http-equiv="Refresh" content="10; URL=stranka ktoru chces refreshnut">

toto ti refreshne kazdych 10sekund
Cenobit
Profil
Hi

pmoci PHP by to slo takhle: V externim souboru by bylo ulozeno, zda se ma stranka obnovit nebo ne a na konci scriptu by byl nekonecny cyklu, co by testoval ten soubor a kdyztak by se reloadnul. Ale je to totalni prasarna, navic musi byt povoleno, aby script mohl bezet nekonecne dlouho.

Lespi by bylo, kdyby se na ten soubor dotazoval javascript treba kazdych 30s.
halogan
Profil
Jde o to, aby to:
1. nerefreshovalo celou stranku, uzivatel si cte
2. fungovalo i bez javascriptu

Ja bych byl asi pro iframe, kde by byl klasicky odkaz. Iframy podporuji i textove prohlizece a neni to spatna znacka, shoutboard jinak resit nejde.
llook
Profil
halogan První bod se IMHO vylučuje s druhým.
Ledaže by se při funkčním XMLHttpRequest natahovala data javascriptem a při nefunkčním by byl klasický refresh.
llook
Profil
Aha, tak nevylučuje. Špatně jsem to pochopil.
halogan
Profil
llook: Ano, nevylucuje - viz moje veta pod tim. Ja bych to nejak zkombinoval. JS ma hodne lidi a pro zbytek to udelat s iframem, zatim nevim, moc jsem to nezkoumal.
luka
Profil *
pozri ak budes mat tam iframe a chces refreshnut len ten iframe, tak daj do str kde bude ten fram ten meta tak, ale odkaz ho na tu stranku co bude v tom frame.daj tomu cas a hotovo.Neviem co tolko riesis.
llook
Profil
Já to totiž pochopil tak, že se nemá refreshovat stránka se shoutboardem - obsah iframu. Protože si někdo může v shoutboardu zrovna číst :)

V zájmu jednoduchosti a kompatibility bych možná javascriptem kontroloval jenom jestli není potřeba refresh, ajax bych vynechal. Skript by mohl vypadat přibližně takhle:
function checkIfNew() {

script = document.createElement("script");
script.setAttribute("src", "are-there-new-posts.php");
document.getElementsByName("head").item(0).appendChild(script);
}

window.onload = function() {
metas = document.getElementsByName("meta");
for (i=0; i<metas.length; i++) {
metas.item(i).parentNode.removeChild(metas.item(i));
}
setTimeOut("checkIfNew();", 5000);
}

Ve stránce se shoutboardem by byl <meta http-equiv="refresh" ...> pro paranoiky a <script src="výše zmíněný skript"> pro běžné uživatele.

No a ten PHP skript are-there-new-posts.php by buďto nevypsal nic, nebo tohle:
document.location.reload(true);

A měl by vracet hlavičku Content-type: application/x-javascript

Samozřejmě by to chtělo ještě odladit, JS není zrovna moje parketa. To už by ale určitě poradil někdo v sekci Javascript.
Charlie
Profil
halogan, o XML requestu jsem uvažoval, asi to tak nakonec udělám, ale stejně bych to chtěl nějak vyřešit přes PHP. Asi na to PHPko nemá.

Jenom mě tak napadlo: Při HTTP autentizaci se využívá unikátního (téměř) kódu prohlížeče, a já jsem chtěl tento "kód" využít k umělému posílání dat do prohlížeče. Abych to víc přiblížil. Chtěl jsem, aby to vypadalo jako ICQ. Když přijde nová zpráva, zobrazí se v seznamu.

llook, tvoje řešení je velmi chytré, já ale potřebuji něco jiného.

Ještě mně napadlo, dalo by se to udělat třeba v Céčku?
llook
Profil
To dost naráží na omezení protokolu HTTP. Ten striktně odděluje klienta a server. Klient může posílat požadavky na server, ale server nemůže posílat požadavky klientovi.
Proto všechny HTML chaty vypadají tak jak vypadají.
halogan
Profil
> Ještě mně napadlo, dalo by se to udělat třeba v Céčku?
A k cemu by to pomohlo? Jedine by to bylo rychlejsi, ale
1. by jsi to nemel jak pripojit na ten web (pokud je to freehosting i placeny)
2. melo by to stejny moznosti

> Chtěl jsem, aby to vypadalo jako ICQ. Když přijde nová zpráva, zobrazí se v seznamu.
takovou interakci neposkytuje JS ani PHP, bylo by nutny flash nebo java, ktere by zaroven mely mensi spotrebu dat.
Wysky
Profil
Toto reseni me napadlo po prescteni predeslych prispevku:
Co takhle udelat maly frame a udelat v nem refresh pomoci http hlavicky nebo js a v nem php kod ktery by overoval zda je neco noveho ... pokud by se nic nedelo nebranilo by to uzivatelum cist si celou stranku. Pokud by bylo neco noveho stejne je nutne celou stranku refreshovat.
Charlie
Profil
To dost naráží na omezení protokolu HTTP

Takže to nejde, to jsem potřeboval slyšet. Tento fakt jsem znal již před tím, jen jsem doufal, že se to trochu hnulo, za tu dobu.

takovou interakci neposkytuje JS ani PHP, bylo by nutny flash nebo java

Ve Flashi to jde? Asi myslíš samostatně mimo prohlížeč...
halogan
Profil
Nikoliv, mam ma mysli v prohlizeci.
Charlie
Profil
halogan, takže server může poslat data do Flashe?
luka
Profil *
do flasha nie ale do Action Scriptu ktory vie spracovat premenne.
koky_kolin
Profil
No já mám podobný problém, udělal jsem shoutboard ale když se přihlásim přes tento shoutboard (dalo mi to dost práce to udělat i s loginem) tak nastane problém v tom, že v iframu jsem přihlášen ale v celém okně ne, to znamená že potřebuju nějakým způsobem refreshovat celé okno a ne jen iframe
ercecko
Profil *
ja bych prave potreboval tohle: refresh stránky se shoutboardem, čili obsah iframu :) Mam stranku, v ni mam iframe a v nem sou prispevky, no a nechci rozhodne pouzivat meta tag na aktualizaci cele site! Jen ten iframe aby se AUTOMATICKY SAM OBNOVOVAL treba po 10 vterinach... je mi jedno jestli to bude pouzivat php nebo JS hlavne at se to obnovuje! dik za pomoc
tiso
Profil
ercecko prečítaj si 9-ty príspevok, tam je riešenie...
Toto téma je uzamčeno. Odpověď nelze zaslat.