[python] sockety a Ajax
Filip Štědrosnký
regnarg na seznam.cz
Sobota Listopad 17 07:33:13 CET 2007
Ajax znamené Asynchroní Javascript a Xml a v podstatě nespočívá v
ničem jiném, než že client-side skriptem můžu když je stránka načtená
posílat http požadavky, číst jejich odpovědi a na základě nich měnit
stránku. Jednoduché použití by bylo třeba takové (předpokládá, že stránka
vrací obsah k zobrazení jako text/plain, s XML je to komplikovanější):
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Ajax Test</title>
<script type="application/x-javascript">
function send_xmlhttprequest(obsluha, method, url, content, headers)
//OWajax support function. Use under Public Domain
{
if (window.XMLHttpRequest) {
var xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (eror) {
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if (!xmlhttp) {
return false;
}
xmlhttp.open(method, url);
xmlhttp.onreadystatechange = function() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
obsluha(xmlhttp, true);
} else {
obsluha(xmlhttp,false);
}
}
};
if (headers) {
for (var key in headers) {
xmlhttp.setRequestHeader(key, headers[key]);
}
}
xmlhttp.send(content);
return true;
}
function zpracuj(xh, ok) {
if (ok) {
document.getElementById("out").firstNode.nodeValue=xh.responseText;
} else {
alert("Chyba při zpracování požadavku");
}
}
function refresh() {
send_xmlhttprequest(zpracuj, "GET", "http://server/data.py");
window.setTimeout("refresh();", 5000); //opakuj za 5s
}
</script>
<head>
<body>
<div id="out">Počkejte na načtení dat...</div>
</body>
</html>
On So, lis 17, 2007 at 07:07:59 +0100, Vladislav Lud�k wrote:
> Pro pÅenos dat ze vzdáleného poÄÃtaÄe (teploty a stavy) a zpÄt na nÄj
> (ÅÃdÃcà povely) použÃvám sockety pod Pythonem.
> Vzdálený poÄÃtaÄ je Linuxový server.
> Ovládánà a pÅenos dat funguje jak má i na klientské stanici.
> PoužÃvám buÄ SSH a spouÅ¡tÃm skripty, nebo v Pythonu socketového
> klienta.
> Na serveru mám spuÅ¡tÄný i web se zobrazovánÃm a ovládánÃm v
> Cherrypy.
> Appache, PHP, MySQL, Postfix apod. mimochodem také.
> A nynà můj dotaz:
> Jak udÄlat zobrazovánà mÄnÃcÃch se hodnot na serveru plynule a
> okamžitÄ i na webu klienta?
> Po vygenerovánà stránky u klienta se už nedozvÃm o zmÄnách hodnot
> na serveru.
> MusÃm poslat žádost, nebo stránku obnovit.
> Existuje metoda Ajax, která vytvoÅà vazbu mezi serverem a klientem
> pomocà JavaScriptu.
> NeumÃm ji ale prakticky využÃt.
> UmÄl by mi nÄkdo poradit prakticky?
> DÃk za váš Äas.
> VL
Další informace o konferenci Python