RE: Jak udělat web server
Michal Grunt
michal.grunt na gmail.com
Pondělí Květen 23 14:17:41 CEST 2016
Neřekl bych že megabajty. Jquerymin má kolem 200KB a dá se ještě customizovat. Navíc nemusíte řešit kompatibilitu (tu za vas vyřešili jiní) a nikde není řečeno, ze se musí tato knihovna ukládat přímo do zařízení na kterých běží stránky. Stačí ji na stránce includnout přímo z Google (pokud bude přístupný internet). Navíc toho umí daleko více a naopak ušetříte místo v paměti v zařízení kde budou webové než kdybyste to musel psát bez ní a kód bude i přehlednější.
----- Původní zpráva -----
Od:"Milan B." <milan na bastl.sk>
Odesláno:23. 5. 2016 13:32
Komu:"hw-list na list.hw.cz" <hw-list na list.hw.cz>
Předmět:Re: Jak udělat web server
On 5/23/2016 12:36 PM, Jan Matuska wrote:
> Pokud by nevadila velikost stránky, tak doporučuji použít knihovnu
> jquery a pak hledat AJAX. Celé to funguje tak, že se Vám načte hlavní
> stránka, na pozadí se spustí časovač v JS, který si periodicky pomocí
> GETu dotáhne data a přepíše s nimi příslušná políčka. Pomocí jquery je
> to opravdu hodně jednoduché.
>
> Např.:
> http://stackoverflow.com/questions/220767/auto-refreshing-div-with-jquery-settimeout-or-another-method
>
>
> Jediné co budete muset vyřešit navíc je nacpat do jednoho dotazu více
> hodnot - pak buď CSV (hodnoty oddělené středníkem) nebo lépe JSON. Na
> to má jquery taky podporu, takže to uděláte celkem rychle.
>
Samozrejme, pouzit megabajty kniznic je cool a in.
Ale da sa to aj bez nich - nasledujuci priklad bezi nazivo na
https://static.bastl.sk/rozne/test.html , :
<html>
<head>
<script>
function newData() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
res=JSON.parse(xhttp.responseText);
document.getElementById("serverdate").innerHTML = res.date;
document.getElementById("servertime").innerHTML = res.time;
}
};
xhttp.open("GET", "servertime.php", true);
xhttp.send();
} </script>
</head>
<body onLoad="setInterval(newData, 3000)">
Server date: <b><span id="serverdate"></span></b><br/>
Server time: <b><span id="servertime"></span></b>
</body>
</html>
servlet servertime.php vracia cas v JSON tvare:
{
"date" : "23.05.2016",
"time" : "13:13:35"
}
Funguje to pre Firefox, pre MSIE roznych verzii treba vyriesit
kompatibilitu (Microsoft.XMLHTTP vs XMLHttpRequest), pripadne
parsovanie JSON, je toho plny google... (jasne, tie megabajty kniznic
to uz riesia)
-m-
> JM.
>
>
> Dne 23.05.2016 v 12:23 Martin Záruba napsal(a):
>> Dík, už to funguje. Mám ještě jeden problém, napsal jsem jej do
>> konference o W, protože mi už připadal moc OT, ale nikdo neodpověděl,
>> tak si dovolím tady (a předem se omlouvám):
>>
>> Nyní běží web server pokusně tak, že se po cca 10s stránka obnoví a
>> zobrazí se nový obsah. Stránka je primitivní, tak to není problém.
>> Rád bych to ale udělal tak, že se nejprve stáhne stránka se vším
>> "krásnem" a pak by se přepisovaly jen hodnoty v příslušných
>> políčkách. Je mi jasné, že javascript umí přepsat obsah políčka, ale
>> jak udělat, aby si řekl o data ze serveru? Server nyní odpovídá na
>> příkaz "get", ale v podstatě může fungovat jakkoli. Jen nevím, zda a
>> jak by měl vypadat javascript. Poradíte?
>>
>> Martin Záruba
>>
>> Dne 22.5.2016 v 7:52 iko napsal(a):
>>> Do prihlasovacej stranky dat do formu session id. Napr:
>>> <input type="hidden" name="sesid" value="jdj3ndjn49f83hnxh37" />
>>> On to potom posle s prihl.udajmi pri dalsom spojeni. Podla toho ho
>>> potom identifikujete, samozrejme si to musite niekde pametat.
>>>
>>> Dňa 22. mája 2016 6:42:42 SELČ používateľ "Martin Záruba"
>>> <swz na volny.cz> napísal:
>>>
>>> Vytvářím program, který se mimo jiné bude chovat jako velmi
>>> jednoduchý
>>> web server, který bude poskytovat nasnímaná data. Data jsou z
>>> několika
>>> zdrojů, každý má svou identifikaci.
>>>
>>> Představoval jsem si to tak, že při otevření stránky se server
>>> zeptá na
>>> identifikaci a po kontrole správnosti bude dodávat příslušná data.
>>> Problém je v tom, že webový prohlížeč po zobrazení stránky s
>>> přihlášením
>>> pošle uzavření socketu a při stisku tlačítka Odeslat, které je na
>>> stránce se znovu připojí a odešle odpověď, ale je to již jiný
>>> socket,
>>> takže já nevím, že patří k tomu prvnímu zobrazení. Jak to
>>> udělat, aby
>>> prohlížeč buď socket neuzavíral nebo abych mohl nějak zjistit,
>>> které
>>> přihlášení patří ke kterému dalšímu připojení prohlížeče?
>>>
>>>
>>> --
>>> iko
>>>
>>> Tento email neobsahuje virusy, pretoze nepouzivam MS Windows.
>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list - sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> ---
>> Tato zpráva byla zkontrolována na viry programem Avast Antivirus.
>> https://www.avast.com/antivirus
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160523/71371e3c/attachment.html>
Další informace o konferenci Hw-list