Vlastní ICQ indikátor

Hoj,

inspiroval jsem se clankem Jana Matouska, ktery vytvoril vlastni textovy indikator stavu ICQ (http://nipal.wz.cz/clanky/srpen04/icq_indikator.html):

function icq_stav($cislo) {
$obrazek = @file("http://web.icq.com/whitepages/online/?icq=$cislo&img=1");
$x = strlen($obrazek[0]);
switch ($x) {
case 389:
echo "<img src=\"img/offline.gif\" alt=\"ICQ status - offline\" width=\"11\" height=\"11\" />";
break;
case 274:
echo "<img src=\"img/online.gif\" alt=\"ICQ status - online\" width=\"11\" height=\"11\" />";
break;
default:
echo "<img src=\"img/disable.gif\" alt=\"ICQ status - disable $x\" width=\"11\" height=\"11\" />";
break;
}
}

Problem je, ze je tento skript pomerne dost pomaly. Kdyz zobrazuji stav pres klasicke kyticky ICQ, tak se nacitaji temer bleskove, ale pokud pouziji tento skript, nacitani stranky se zasekne prave na zobrazeni tohoto indikatoru, 5-10 vterin se nic nedeje a pak se stranka nacita dal. Kdyz se mi ty kyticky nacitaji do prohlizece, tak jsou celkem rychle, tudiz by se dalo ocekavat, ze pri komunikaci mezi servery bude jejich nacteni z jednoho serveru na druhy otazkou zlomku sekundy. Nejde to udelat nejak jinak? Nema s timto nekdo nejake zkusenosti? Diky za jakoukoli radu.

PS: Zde je mozno indikator otestovat: http://nick.borec.cz/temp/icq.php - textu je na strance minimalne, vsechno vazne na prislusnem skriptu.
Obavam se, ze tohle nijak resit nepujde...
ono totiz na ICQ serveri podla tvojho stavu v DB poslu obr. a je to. Ty ale najprv pockas na ich odpoved co tiez chvilu trva. potom zistis velkost a az potom posielas obr. jak hovori sojkovec, to nepojde, jedine ak by si to upravil ze vrati ten obrazok (ImagePNG) a potom to pouzival v stranke ako obr. Ten by sa nacital az potom co stranka
Pokud potřebuješ jenom vytvořit si třeba vlastní obrázky a vykašlat se na textové hlášení stavu, pak použij postup, který naznačil lacop - vkládat do stránky nejprve img src="vlastni_indik.php?cislo=$icq" a skript vlastni_indik to teprve vyhodnotí.

Jinak dá se to pochopitelně řešit JavaScriptem, ale to už ztrácí hlavní účel - přístupnost. Následující řešení mi zaslal Milster krátce po vydání článku - funguje, ale vyžaduje zapnutý JavaScript. Otisknu celý mail, snad to nebude Milsterovi vadit:

»

Zdravim!

Reaguju na clanek o textovem indikatoru icq.

Problem toho je, ze to zpomaly nacteni cely stranky (tady na wz az o
3+ vterin [taky jak kdy]),
protoze serveru nejakou dobu trva, nez nacte obrazek. Udelal jsem neco podobnyho, ale aby to nezdrzovalo zbytek stranky v zobrazeni.

nekde v dokumentu
<span id="na" style="font-weight:bold;">zjišťuji..</span> //'na' jako not available :) <span id="on" style="font-weight:bold;color:#5a5;display:none;">online</span>
<span id="off" style="font-weight:bold;color:#a55;display:none;">offline</span>

na konci dokumentu
<script language="JavaScript" type="text/javascript" src="icq.php?icq=348801400"/>

-- soubor icq.php --
<?php $soubor=fopen('http://web.icq.com/whitepages/online?icq='.$_GET['icq'].'&img=2','r');
$obsah=fread($soubor,655);
fclose($soubor);
$soubor=fopen('icq_temp','w');
$bajty=fwrite($soubor,$obsah);
fclose($soubor);
echo "document.getElementById('na').style.display='none';";
if($bajty==654)
{
$text='online';
echo "document.getElementById('on').style.display='inline';";
}
else
{
$text='offline';
echo "document.getElementById('off').style.display='inline';";
}
?>
-- soubor icq.php --

Samozrejme tim javascriptem muzes delat i jiny skopiciny :) Treba nastavit title by nemel byt problem. Jak to vypada v praxi se muzes podivat na http://vist.wz.cz/kontakt.php Doba, po kterou uvidis "zjistuji.." je doba, po kterou bys nevidel vubec nic. Ty to mas vlastne na vsech svych strankach, tak si spocitej, jak to plytva casem :)

Milster

«

A zásadně: žiji v čechách a všudě se mi říká honza, nípal, nebo matyas ;) jan mi neřekne nikdo, tys asi výjimka ;)
>> A zásadně: žiji v čechách a všudě se mi říká honza, nípal, nebo matyas ;)
Jistě, Alexi... ;)
:D mno, od křestního jména nicku "alex nípal" postupně upouštím, ale staří známí si neodpustí :)
>>:D mno, od křestního jména nicku "alex nípal" postupně upouštím, ale staří známí si neodpustí :)

Postupně upouštíš? Asi dost postupně ;) Teď někde sem četl "...ze zálohy staré tři dny. Váš Alex. " :)