Portál AbcLinuxu, 12. května 2025 04:39

Dotaz: Jak jednoduše načíst proměnou ze serveru do Javascriptu

20.2.2014 13:12 michal | skóre: 24 | blog: Blog
Jak jednoduše načíst proměnou ze serveru do Javascriptu
Přečteno: 187×
Odpovědět | Admin
Mam jednoduchý web server (bottlepy) na Raspberry a potrebuji nejak poslat signál ze serveru do javascriptu aby reloadnul webovou stranku když se dokončí určitý proces.

Ideálně by periodicky javascript načítal adresu http://server/reload a pokud vrácená hodnota bude "1" tak by to obnovilo stránku.

Takže existuje nějaká snadná cesta jak načíst string do javascriptu z určité url ? Popřípadě pokud vidíte nějaké lepší / jednodušší řešení jak obnovit stránku když se na serveru dokončí úloha.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.2.2014 13:24 DarkKnight | skóre: 26
Rozbalit Rozbalit vše Re: Jak jednoduše načíst proměnou ze serveru do Javascriptu
Odpovědět | | Sbalit | Link | Blokovat | Admin
ajax (treba pres jquery pro jednodussi pouziti)
Tarmaq avatar 20.2.2014 13:35 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak jednoduše načíst proměnou ze serveru do Javascriptu
Odpovědět | | Sbalit | Link | Blokovat | Admin
s pomoci jquery, opakovani kazdych 5 vterin:
$(document).ready(function()
{
  window.setInterval(
    function()
    {
      $.ajax({
        url: 'http://server/reload',
        success: function (response)
        {
          if (response == '1') {
            window.location.reload();
          }
        }
      })
    }
  , 5000
  );
})
Don't panic!
Josef Kufner avatar 20.2.2014 14:39 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak jednoduše načíst proměnou ze serveru do Javascriptu
Namísto naivního porovnání s jedničkou doporučuju posílat data v JSON. Umožní to pohodlně předávat podrobnější údaje o průběhu procesu na serveru nebo podrobnější chybová hlášení. Pokud server pošle správný content-type, tak to jQuery samo rozparsuje, takže může server vracet "{success: true, msg: "funguje to"}" tak pak stačí:
if (response.success) { 
    $('div.msg').text(response.msg);
    ...
Případně takto můžeš rovnou předávat zobrazovaná data. Je to rychlejší a z pohledu uživatele plynulejší.
Hello world ! Segmentation fault (core dumped)
Tarmaq avatar 20.2.2014 14:55 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak jednoduše načíst proměnou ze serveru do Javascriptu
jasne, taky pouzivam JSON, ale ze zadani jsem mel pocit, ze ma omezene moznosti generovani toho vystupu..
Don't panic!
20.2.2014 15:20 michal | skóre: 24 | blog: Blog
Rozbalit Rozbalit vše Re: Jak jednoduše načíst proměnou ze serveru do Javascriptu
Možnosti toho serveru jsou omezené, ale ta webová aplikace nebude používaná mnoha uživateli. Jediný problém byl že automatický refresh celé stránky každých pár vteřin moc zatěžoval to Raspberry. Tvoje řešení je přesně to, co jsem hledal
20.2.2014 15:22 michal | skóre: 24 | blog: Blog
Rozbalit Rozbalit vše Re: Jak jednoduše načíst proměnou ze serveru do Javascriptu
Možnosti toho serveru jsou omezené, ale ta webová aplikace nebude používaná mnoha uživateli. Jediný problém byl že automatický refresh celé stránky každých pár vteřin moc zatěžoval to Raspberry. Tvoje řešení je přesně to, co jsem hledal. Řešení jak to udělat přes pokročilejší metody jsem našel, ale většinou se myslím potřeboval Apache nebo podobný velký systém.
Tarmaq avatar 20.2.2014 16:42 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak jednoduše načíst proměnou ze serveru do Javascriptu
Jeste me neco napadlo. Jakym zpusobem zajistis, abys vracel zase neco jineho nez "1", az budou vsichni klienti aktualizovani? Nebylo by lepsi posilat si timestamp aktualni verze a refreshovat az v pripade, kdy se bude timestamp lisit?
Don't panic!
Josef Kufner avatar 20.2.2014 18:21 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak jednoduše načíst proměnou ze serveru do Javascriptu
Generování výstupu v JSON nevyžaduje nic víc než escapování uvozovek a netisknutelných znaků. A pokud se ti takové ve výstupu neobjevují (např. pokud je to vždy číslo), tak ani to ne. Jen přihodíš pár znaků na začátek a pár na konec. To zvládne i hloupé echo.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.