| Autor | Zpráva | ||
|---|---|---|---|
| Enngage Profil |
#1 · Zasláno: 16. 2. 2012, 17:56:08
Ahoj,
předpokládejme, že mám klasické fórum s tématy. Uživatel je na stránce s výběrem témat. V tomhle okamžiku někdo jiný přidá příspěvěk do nějákého tématu. Mým cílem je tuto změnu zaznamenat a na stránce uživatele např. zvýraznit dané téma (dát najevo, že došlo ke změně) a to všechno bez potřeby aktualizovat stránku. Mohl by mě někdo prosím nasměrovat správným směrem, jak by se tohle dalo udělat? Stačí mě nasměrovat na správnou metodiku..:) Děkuji :) |
||
| Again Profil |
#2 · Zasláno: 16. 2. 2012, 19:08:50 · Upravil/a: Again
Začni studovat Ajax, pomocí kterého můžeš komunikovat se serverem prostřednictvím HTTP protokolu. Díky němu je možné posílat libovolné dotazy do databáze přes php, potom je následně na straně serveru zpracovat a odeslat zpět bez nutnosti znovu načítání stránky. Dole uvedu několik odkazů z českými & anglickými návody pro Ajax:
http://citron.blueboard.cz/clanek-239-ajax-navod-pro-zacatecniky.html http://jquery-navod.cz/kategorie-ajax/9-ajax http://www.ajaxtutorial.net http://www.learn-ajax-tutorial.com/ K Ajaxu je vhodné také připojit Jquery, což je javascriptová knihovna a díky ní je spolupráce z Ajaxem o poznání lehčí ... |
||
|
Časová prodleva: 3 dny
|
|||
| Chamurappi Profil |
#3 · Zasláno: 19. 2. 2012, 13:59:39 · Upravil/a: Chamurappi
Reaguji na Againa:
„díky ní je spolupráce z Ajaxem o poznání lehčí“ Vážně? V čem? Vždyť je to (v případě XMLHttpRequestu) jen tenký obal. Vesměs všechny možné druhy chyb u AJAXu, které lidi dělají bez jQuery, dělají i s jQuery. S jQuery jich dělají víc, protože nevědí, co se přesně děje pod pokličkou. Reaguji na Enngage: 1) Jsi si jistý, že tvé „klasické fórum“ utáhne výslednou zátěž? To, co chceš, vyžaduješ pravidelné dotazování na server. Pokud máš na fóru hodně lidí, kteří na té stránce s výběrem tráví dlouhé časy, mohlo by to být náročné. 2) Jsi si jistý, že to uživatelé chtějí? |
||
| SeparateSK Profil |
#4 · Zasláno: 19. 2. 2012, 14:25:59 · Upravil/a: SeparateSK
Myslím,že chceš niečo takéto:
Potrebuješ 2 súbory: tam kde mas ten script.php status.php Ten súbor kde to chceš mať - toto upozornenie..., dáš toto: <script type="text/javascript" language="JavaScript">
var fsa=0;
var fs=0;
var start=0;
var udalost=false;
var url="status.php?id=<?php echo "$_GET[id]";?> "; //toto si upravis, aby to odkazovalo na status.php?forum=ID momentalneho fora
function fsize(){
var x;
if (this.XMLHttpRequest)
{
x=new XMLHttpRequest();
}
else
{
x=new ActiveXObject("Microsoft.XMLHTTP");
}
x.onreadystatechange=function()
{
if (x.readyState==4 && x.status==200)
{
fsa=x.responseText;
start+=1;
//if(start==1) volaka_funkcia_chatu();
if(fsa>fs) udalost=true;
fs=x.responseText;
}
}
x.open("POST",url,true);
x.send();
if(udalost) {
alert("Niekto pridal nový príspevok");
udalost=false;
}
}
setInterval(function(){fsize();},1000);
</script>A status.php: <?php
$q=mysql_query("SELECT * FROM fora_prispevky WHERE id=$_GET[id]");
$pocet=mysql_num_rows($q);
echo $pocet;
?> |
||
|
Časová prodleva: 11 dní
|
|||
| Enngage Profil |
#5 · Zasláno: 1. 3. 2012, 10:20:06
Takže, aby tohle mohlo fungovat, tak je potřeba se pravidelně dotazovat serveru? Chtěl jsem právě zjistit jestli je i jiná, méně naročnější, možnost. Jak potom funguji chaty? To je v podstatě stejný princip. Nebo zde je nějaké přímé spojení klienta s klientem?
|
||
| Chamurappi Profil |
#6 · Zasláno: 1. 3. 2012, 10:50:50
Reaguji na Enngage:
„Jak potom funguji chaty?“ Takhle. „jestli je i jiná, méně naročnější, možnost“ Jiná — špatně podporovaná a na přípravu složitější — možnost existuje. |
||
|
Časová prodleva: 1 rok
|
|||