abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:11 | Humor

    Win8DE je desktopové prostředí pro Wayland, inspirované nechvalně proslulým uživatelským rozhraním Metro z Windows 8. Nabízí dlaždicové rozhraní s velkými tlačítky a jednoduchou navigací, optimalizované pro dotyková zařízení. Cílem projektu je přetvořit design operačního systému Windows 8 do funkčního a minimalistického rozhraní vhodného pro každodenní použití na Linuxu.

    NUKE GAZA! 🎆 | Komentářů: 7
    dnes 14:33 | Nová verze

    Laboratoře CZ.NIC vydaly Datovku 4.28.0 a Mobilní Datovku 2.6.0. Hlavní novinkou je ukládání rozpracovaných datových zpráv do konceptů. Datovka je svobodné multiplatformní aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi.

    Ladislav Hagara | Komentářů: 1
    dnes 14:22 | Zajímavý projekt

    Unix Pipe Game je vzdělávací karetní hra zaměřená na děti a rodiče, která děti učí používat unixové příkazy prostřednictvím interaktivních úkolů. Klíčovým prvkem hry je využití symbolu | pro pipeline neboli 'rouru', který umožňuje propojit výstupy a vstupy jednotlivých unixových příkazů, v tomto případě vytištěných na kartičkách. Předpokládá se, že rodič má alespoň nějaké povědomí o unixových příkazech a jejich provazování pomocí |.

    … více »
    NUKE GAZA! 🎆 | Komentářů: 3
    dnes 13:55 | Zajímavý software

    PCIem je linuxový framework, který vytváří virtuální zařízení PCIe pomocí technik, které umožňují hostitelskému operačnímu systému rozpoznat tyto syntetické 'neexistující' karty jako fyzické zařízení přítomné na sběrnici. Framework PCIem je primárně zamýšlen jako pomůcka pro vývoj a testování ovladačů bez nutnosti použít skutečný hardware. Dle tvrzení projektu si fungování PCIem můžeme představit jako MITM (Man-in-the-Middle), který se nachází mezi ovladači a kernelem.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 05:33 | Bezpečnostní upozornění

    Byla nalezena vážná bezpečnostní chyba v telnetd z balíčku GNU InetUtils. Týká se verzí GNU InetUtils od 1.9.3 z 12. května 2015 až po aktuální 2.7 z 14. prosince 2025. Útočník může obejít autentizaci a získat root přístup, jelikož telnetd nekontroluje předaný obsah proměnné prostředí USER a pokud obsahuje "-f root"…

    Ladislav Hagara | Komentářů: 5
    včera 17:22 | Komunita

    Stanislav Aleksandrov předložil patch rozšiřující KWin (KDE Plasma) na 3D virtuální desktopové prostředí (videoukázka v mp4).

    Ladislav Hagara | Komentářů: 5
    včera 05:55 | IT novinky

    Digg (Wikipedie), "místo, kde můžete sdílet a objevovat to nejlepší z internetu – a nejen to", je zpět. Ve veřejné betě.

    Ladislav Hagara | Komentářů: 4
    včera 01:44 | Komunita

    Po .deb balíčcích Mozilla nově poskytuje také .rpm balíčky Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 9
    včera 00:33 | IT novinky

    Vývojové prostředí IntelliJ IDEA slaví 25. narozeniny (YouTube).

    Ladislav Hagara | Komentářů: 0
    19.1. 23:55 | IT novinky

    Vedení společnosti NVIDIA údajně povolilo použití milionů knih ze známého 'warez' archivu Anna's Archive k výcviku umělé inteligence, ačkoliv vědělo, že archiv tyto knihy nezískal legální cestou. Žaloba, ve které se objevují i citace interních dokumentů společnosti NVIDIA, tvrdí, že NVIDIA přímo kontaktovala Anna's Archive a požadovala vysokorychlostní přístup k datům knihovny.

    NUKE GAZA! 🎆 | Komentářů: 24
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (5%)
     (0%)
     (10%)
     (20%)
     (3%)
     (5%)
     (2%)
     (11%)
     (37%)
    Celkem 557 hlasů
     Komentářů: 16, poslední včera 17:04
    Rozcestník

    Dotaz: Javascript - opakované načteni v HTML

    30.9.2020 11:21 plysak1904
    Javascript - opakované načteni v HTML
    Přečteno: 512×
    Zdravím a prosím o radu. Jak mám v HTML opakovaně načítat externí javascript jen tehdy, když se jeho obsah změní? Zatím to mám tak, že s pravidelným intervalem načítám znovu celou stránku.

    Na RPi mi běží v pythonu cyklus, který po minutě načítá čidla a spouští přes relé zařízení. A stav systému píše do javascriptů, které se načítají v HTML a zobrazují stav na webové stránce.

    Přes form a PHP scripty potom z webu dávám pokyny pro řízení systému zpět do pythonu.

    Aby byl web aktuální, musí se rovněž načítat s krátkým intervalem. To ale nechci. Zatím jsem vždy našel jen přepsání celé stránky.

    Děkuji předem za tipy, kde hledat řešení.

    Řešení dotazu:


    Odpovědi

    30.9.2020 12:39 panika
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    chces proste SPA / dynamickej web, jestli tomu dobre rozumim. Ja pouzivam ze strany pythonu Flask (udelas si REST api) a z js strany Vue. Php k tomu podle me vubec nepotrebujes.
    urcite jsou v obou jazycich i progresivnejsi technologie, ale ty nemam vozkouseny.
    30.9.2020 13:18 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    O websocket si nepocul?
    debian.plus@protonmail.com
    30.9.2020 15:16 plysak1904
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Příloha:
    Oběma (panika i debian+) děkuji za odpověď. Ale nepředeslal jsem, že jsem lama a hraju si s HTML, Javascriptem a PHP teprve asi 3 týdny a následující řešení jsem si vymyslel sám. Jen mne svojí funkčností neuspokojuje. Takže určitě Flask a Vue.js i websocket budou asi řešení, ale Vaše odpovědi jsou na mne trošku hrr a zatím se s tím moc neumím vypořádat. Když to zjednoduším - když na RPi v pythonu mám pro funkci termostat nastavenou teplotu v pokoji na 22st.C, tak to dám do souboru topeni.js, kterej mi to vypíše na HTML stránce. Na stejné stránce zmačknu (Přidat +1st.C) a script prikazy.php mi do souboru přikazy.txt zapíše "T+". To si python v dalším cyklu přečte a nastaví proměnnou t_set na 23. A znovu to dá do topeni.js a tak dokola. Ale mám tam toho víc. Mám třeba rezim_topeni, který může být "Den", "Noc", "Automaticky", "Manuálně" atd... Takže i víc těch javascriptů. Zkusím nastudovat websocket, Flask i Vue.js, ale dá se jednoduše vysvětlit, jak se to s nimi dělá jinak? Možná to potřebuji víc polopatě...Dík.

    30.9.2020 16:36 panika
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    polopate si ted vlastne povidas pres soubory. (ekvivalent mrtve schranky)

    to co ti tu radime je povidat si primo. (ty websockety na to mas urcite lepsi jak REST, kterej jsem zminoval protoze znas formulare)

    tak to dám do souboru topeni.js
    ta sama funkce co ti vypise do souboru to muze vypsat na pozadani do websocketu https://websockets.readthedocs.io/en/stable/intro.html https://www.tutorialspoint.com/html5/html5_websocket.htm
    Na stejné stránce zmačknu (Přidat +1st.C) a script prikazy.php mi do souboru přikazy.txt zapíše "T+".
    no a abys nemusel obnovavat stranku, tak tu interakci musis delat v js, ja pouzivam Vue, ale moznosti je vic https://tutorialedge.net/javascript/vuejs/vuejs-websocket-tutorial/

    ty navody jsem podrobne necetl ale neprisly mi zly na prvni pohled, ja bych to udelal tak ze bych celej tenhle problem rozdelil na casti, z tech vzdycky udelal minimalni priklad a nabaloval to, az by mi to cely nejak chodilo tak bych to slepil a pripadne potom vylepsil.
    1.10.2020 20:52 plysak1904
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Děkuju. Už jsem zjistil, že websockets by asi bylo řešení a dík za ty odkazy, kouknu se na to.
    30.9.2020 14:08 MadCatX | skóre: 28 | blog: dev_urandom
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Nebylo by chytřejší psát senzorová data do nějakých JSONů a ty si pak na klientovi vyžádat JSkem? Generovat celý skript jen proto, že se změnila data je podle mě zbytečné a vede to přesně na takto nešikovná řešení.
    30.9.2020 15:30 plysak1904
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Děkuju za reakci, ale viz můj předchozí příspěvek - sice jsem už o JSON souborech taky slyšel, ale vůbec nevím, o co jde. Vidím, že těch možností, jak to řešit asi bude i víc, než jste mi tu naznačili. Ale zatím si z toho neumím vybrat. Není to nic, na čem by závisely životy (snad jedině kytek, aby neuschly) a dělám to jako hobby, protože jsem od syna dostal Raspberry Pi. Kdysi jsem snad něco programoval ještě na starém HP9825 a pak v době před-Wokenní ve FoxBasi. Ale přeci jen doba trochu pokročila a v 70 se člověk už tak snadno neučí....
    30.9.2020 16:24 MadCatX | skóre: 28 | blog: dev_urandom
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Pomůže tohle jako ukázka, jak to řešit JSONy?

    Kód webu:
    <html>
    <head></head>
    
    <body>
    Data senzorů:<br />
    <div id="svetlo_chodba">N/A</div>
    <div id="svetlo_kuchyne">N/A</div>
    <div id="teplota_kuchyne">N/A</div>
    
    <script type="text/javascript">
    function jednotka_na_text(jedn) {
        if (jedn === null)
            return '';
        return ' (' + jedn + ')';
    }
    
    async function aktualizuj_senzory() {
    fetch(
        "http://localhost:8080/data_senzoru.json"
    ).then(
        (resp) => {
            if (resp.status !== 200) {
                // VYŘEŠ CHYBU!
                alert("Chyba " + resp.status + "!");
                return;
            }
            resp.json().then(
                (stav_senzoru) => {
                    for (const senzor of stav_senzoru) {
                        document.getElementById(senzor.jmeno).innerHTML = senzor.stav + jednotka_na_text(senzor.jednotka);
                    }
                }
            )
        }
    )
    }
    </script>
    
    <input type="submit" onClick="aktualizuj_senzory();" value="Aktualizuj" />
    </body>
    </html>
    
    data_senzoru.json
    [
        {
            "jmeno": "svetlo_chodba",
            "jednotka": null,
            "stav": 0
        },
        {
            "jmeno": "svetlo_kuchyne",
            "jednotka": null,
            "stav": 1
        },
        {
            "jmeno": "teplota_kuchyne",
            "jednotka": "°C",
            "stav": 22
        }
    ]
    
    30.9.2020 16:54 plysak1904
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Děkuju, to vypadá zajímavě, zkusím to implementovat. Jen bych ještě rád, abych tu aktualizaci nemusel vyvolávat jako "onClick", ale kdyby to šlo jako "onChange". Dokáže to nějak rozpoznat změnu senzory.json?

    Nejde mi jen o ovládání na dálku přes web, ale malý tablet by měl sloužit přímo na místě jako ovládání topení nebo zalévání, takže by měl mít trvale aktuální údaje. Pokud to má třeba používat manželka, tak už nutnost nejdřív aktualizovat data tlačítkem by mohl být problém...:-)
    30.9.2020 17:46 MadCatX | skóre: 28 | blog: dev_urandom
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Existuje Push API ale to je asi přehnaně komplikované. Jednoduše se dá se ale vyrobit třeba časovač, který ten obsah bude pravidelně obnovovat.
    NUKE GAZA! 🎆 avatar 1.10.2020 13:56 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML

    zvhledem ktomu že nějaký domácí topení je obecně jakoby celkem pomalej proces aže to nebude ovládat hrozně moc uživatelů najednou tak to opakovaný načtení *.json v nějakým rozumě dlouhým intervalu mi připadá jako dobrý řešení :D ;D

    nóó ale pokud bys chtěl mit třeba víc různejch klientů najednou připojenejch k tomu raspberry a chtěl taky aby všecky mohli 'najednou' ovládat tu požadovanou teplotu a bez refreshů stránky/ znovunačítání souboru v pevně danejch intervalech tak bych asi nato vzala ty websockety jak už je zmiňoval debian+. hezkej návod pro python + js tady hele nóó a hodně nejpodobnější příklad k tomu tvýmu problémku tam maj takový počítadlo na kterým muže víc klientů nezávisle nasobě měnit hodnotu hele. pro tvuj problémek je tohleto možná zbytečně moc nóó ale bude dlouuuuůůůůůhhháááááá zima a kdybyses hrozně nudil tak aspoň máš s čim si hrát :D ;D

    NUKE GAZA! 🎆 avatar 1.10.2020 14:13 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML

    sice jsem už o JSON souborech taky slyšel, ale vůbec nevím, o co jde

    hele a hele :D ;D

    NUKE GAZA! 🎆 avatar 1.10.2020 14:09 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML

    drobná poznámka bokem

    pokud chceš trošičku prodloužit životnost sdkarty tak se dá vyrobit takzvanej ramdisk. je to jakoby souborovej systém skovanej přímo v ramce takže se ty data nezapisujou do souborů na sdkartě ale jenom do ramky nóó a je to ideální právě pro různý ty maličký senzorový data :D ;D jak vyrobit ramdsik návod tady hele jen si myslim že 50MB je zbytečně moc velký nastav si nějakou rozumnější hodnotu :O ;D

    1.10.2020 20:57 plysak1904
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Moc děkuji za radu, ale ramdisk používám už déle. Možná to nakonec budu řešit přes json, ale teď mne zaujal způsob s websockets. Každopádně je fajn, že jsou lidi ochotní poradit, i když jde jen o takovéto "hraní si"... Dík
    1.10.2020 14:39 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Aktualizace hodnot z data/teplota.txt:
    <!DOCTYPE html>
    <html lang="cs">
    	<head>
    		<meta charset="utf-8">
    		<title>Teplota</title>
    		<script src="http://code.jquery.com/jquery-latest.js">
    		<script type="text/javascript">
    			$(document).ready(function(){
    				var f = function(){
    					console.log('Aktualizuji teplotu...');
    					$("#teplota").load('/data/teplota.txt');
    				};
    				setInterval(f, 1000); 
    			});
    		</script>
    	</head>
    	<body>
    		<div class="wrapper">
    		<h1>Teplota</h1>
    		<div>Teplota je: <span id="teplota"></span></div>
    		</div>
    	</body>
    </html>
    
    -- OldFrog
    2.10.2020 11:19 plysak1904
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Děkuju. Jsem teď mimo a nemohu s tím nic dělat, ale až se vrátím, tak to vyzkouším.
    2.10.2020 14:38 plysak1904
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    K tomu RPi, co mám na chalupě, nemám momentálně přístup. Ale zkusil jsem si na NB uložit to HTML od Tebe, jen pro vyzkoušení toho skriptu jquery-latest.js, ale asi dělám něco blbě. Ve stejným adresáři jako HTML jsem vytvořil podložku /data/ a v ní soubor teplota.txt, kam jsem zapsal číslo 25 (Je doufám jedno, zda to číslo tam napíše nějakej běžící skript, nebo já přes klávesnici). Předpokládám, že funkce

    $(document).ready(function(){ var f = function(){ console.log('Aktualizuji teplotu...'); $("#teplota").load('/data/teplota.txt'); };

    dokáže rozpoznat čitelnost souboru, a měla by se sekundovým intervalem teplotu z toho souboru načítat. Ale něco je asi blbě, neděje se nic.
    2.10.2020 14:47 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    V tom prípade by som odporučil niečo pre inšpiráciu.
    NUKE GAZA! 🎆 avatar 2.10.2020 16:07 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML

    Ale něco je asi blbě, neděje se nic.

    předpokládám že to jakoby zablokovaný kuli conten security policy hele nóó a to by bylo uplně v pořádku :O ;D zmáčkni v prohlížeči f12 a koukni jestli ti to něco piše do webový konzole :O ;D

     

    asi tě bude zajímat jak jako to zabezpečení pro vývoj trošičku vobejít. chrome/chromium de pustit s vypnutým zabezpečením noa tam by ti to mohlo fungovat snad :O :O

    vyrob si nějakou složku pro dočasnej uživatelskej profil a pak chromium pust takle nějak

    chromium --user-data-dir='cesta/k/docasne/slozce' --disable-web-security /nejaka/cesta/k/souboru/index.html
    

    mi to takle pustit de :D ;D pro firefox ale na něco podobnýho bude potřeba nějakej doplněk aby šlo tu content policy deaktivovat :O :O

    NUKE GAZA! 🎆 avatar 3.10.2020 15:04 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML

    sem zapoměla říct to důležitý :D tyhlety problémy s csp to má předevšim proto žeto jakoby neběží na serveru ale z nějakýho uživatelskýho adresáře. kdybys to strčil na server tak todleto zlobení přestane :O ;D

    další řešení je si třeba na vývoj udělat nějakou virtuálku třeba ve virtualboxu hele a tam mit server na zkoušení :D ;D

    3.10.2020 19:56 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Ano, musí to být na serveru - na hostingu nebo si lze spustit lokální server. Nejsnáze to jde po nainstalovaání PHP zadáním tohoto příkazu v adresáři s index.html souborem:

    php -S localhost:8080

    Pak stačí otevřít odkaz

    http://localhost:8080/

    -- OldFrog
    3.10.2020 20:03 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    https://uloz.to/file/tZWVzMJoCOO2/test-zip
    -- OldFrog
    NUKE GAZA! 🎆 avatar 2.10.2020 16:11 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML

    šestej řádek je potřeba přepsat takle

    <script src='https://code.jquery.com/jquery-latest.js'></script>
    3.10.2020 19:52 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Javascript - opakované načteni v HTML
    Ano.
    -- OldFrog

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.