Autor Zpráva
hazardrok
Profil
Ahoj, mám webserver který získává data z externího zařízení. Data jsou typu konstant nebo stavů checkboxů. Paralerně mi běží dvě stránky, kdy jedna periodicky vyčítá data ze serveru a druhá by mi je měla pomocí JS(ajax) zobrazovat.

Můj dotaz je následující:

Je možné data rovnou z obnovené stránky odeslat do cílové, nebo musím použít nějakou jinou metodu? Nejvíc by se mi líbilo, kdybych si přímo v nějaké funkci javaskriptu uložil hodnoty do proměnné a tyto hodnoty už bych si uměl zpracovat. Problém je v tom, že jsem nepřišel na to jak z té obnovené stránky získat přímo hodnoty...umím načíst pouze celou stránku.

Dík za jakoukoliv odpověď.
Str4wberry
Profil
Problém je v tom, že jsem nepřišel na to jak z té obnovené stránky získat přímo hodnoty...umím načíst pouze celou stránku.

Z celé stránky si můžeš potřebné údaje vyzobat pomocí regulárních výrazů, ale pohodlnější může být si je předávat třeba v JSONu. Nebo si můžeš na první stránce generovat přímo externí JavaScript, který na druhé stránce připojíš.
hazardrok
Profil
Dík za odpověď....docela se mi zalíbil ten JSON. Bohužel na tohle jsem asi krátkej, protože o tom od rána čtu, ale jsem z toho úplně vedle.
_es
Profil
hazardrok:
Čo sú to tie „dve stránky“? Stránky načítané do jedného prehliadača do jeho odlišných okien? Alebo, keď tá jedna stránke číta dáta, prečo ich aj nezobrazí? Alebo, prečo si rovnako nenačíta dáta aj tá druhá stránka?
hazardrok
Profil
Na hlavní stránce zobrazuji velký obrázek a hodnoty z měřicího zařízení. Pokud chci obnovit hodnoty ze zařízení musím refrešovat celou stránku. To je dáno funkcí webserveru na kterém to běží a stím nedokážu nic udělat, protože firmware nelze změnit. Toto řešení má pro mě tu nevýhodu, že se celá stránka překresluje a trvá to nějakou dobu. Tak jsem vytvořil dvě stránky. Na jedné mám to GUI a na druhé se snažím o cyklickou obnovu hodnot. V tuto chvíli umím použít AJAX (nebo si to alespoň myslim) k tomu, abych dokázal přečíst data z té obnovené stránky. Jenže co snima? Potřeboval bych z nich nějak vyseparovat konstanty, které mě zajímají a načíst si je v té grafické stránkce. Takže jsou to dvě stránky načítané do jednoho prohlížeče....
Str4wberry
Profil
Takže ten výstup stránky, která je zdrojem dat, nejsi schopen ovlivnit? V tom případě asi budeš muset použít ty regulární výrazy. Ještě mě napadá, jestli ten webserver nenabízí potřebná data v nějaké syrové podobě, ze které by se to mohlo získávat jednodušeji než z HTML stránky (jestli si to představuji správně).
_es
Profil
hazardrok:
V tuto chvíli umím použít AJAX (nebo si to alespoň myslim) k tomu, abych dokázal přečíst data z té obnovené stránky.
Ak sa obe stránky zobrazujú v jednom prehliadači a obe sú načítané z jednej domény, tak môže mať JS z jednej stránky priamy prístup k dátam druhej stránky - netreba do toho montovať žiadny server ani riešiť formát výmeny dát.
hazardrok
Profil
Můžu teda vyvolat v jedné stránce javaskript a do proměnné uložit data....ve druhé stránce otevřu stejný skript a data přečtu?
_es
Profil
hazardrok:
Máš veľa možností - môžeš dať aj tú „hlavnú stránku“ do iframe či frame alebo získať objekt iného okna. Tak, ako má JS prístup k dátam na stránke na ktorej beží, môže mať prístup aj k stránkam v inom ráme či okne. Ešte by si mohol odpovedať na [#6] Str4wberrymu, či nie je možnosť výstupu len samotných dát zo serveru.
hazardrok
Profil
Nejsem si jistej jestli něco takového je možné. Mě to nejde nebo to dělám spatně. Hodnoty, které mě zajímají mi server vrací ve formátu ~promena~, ale hodnota se aktualizuje až po obnovení celé stránky. Zde je zdroják, se kterým mi to nefunguje, ale snad to nastíní co by to mělo dělat:

Tato sránka by mi měla obnovovat ty hodnoty....obnovena.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta http-equiv="refresh" content="2">
        <script  charset="UTF-8" src="js/externi_skript.js"></script>

        <body>
            
        <script>
      funkce();
    </script>    
            
        </body> 
    </head>  
</html>

v tomto skriptu se snažím o umístění hodnot do formulářů v index.html

var an1;
var an2;
var an3;
var an4;

function funkce(){
  an1 = '~1~';
  an2 = '~2~';
  an3 = '~3~';
  an4 = '~4~';
  }

function draw(){   
  document.title = x;
  x++;  
  document.formular1.ad1.value = an1;
  document.formular2.ad2.value = an2;
  document.formular3.ad3.value = an3;
  document.formular4.ad4.value = an4;
  }

window.setInterval("draw()", 2000);
window.open("obnovena.html", "mereni", "width=340,height=130");
hazardrok
Profil
tak všechno bylo úplně špatně.....už mi to funguje, ale byl to zatracenej boj

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: