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 09:00 | Komunita

Vývojáři Asahi Linuxu se na Twitteru pochlubili prvním trojúhelníkem zobrazeným pomocí open source ovladače pro Apple M1 GPU. Pracuje na něm Alyssa Rosenzweig z Collabory. Více na jejím blogu (1. část a 2. část). Zdrojové kódy jsou k dispozice na GitHubu.

Ladislav Hagara | Komentářů: 11
dnes 08:00 | Komunita

V sobotu proběhla konference Online GodotCon 2021 vývojářů a uživatelů multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Zatím nesestříhaný videozáznam příspěvků je k dispozici na YouTube.

Ladislav Hagara | Komentářů: 0
včera 10:00 | Zajímavý software

Deskreen byl vydán ve verzi 1.0.0. Jedná se o aplikaci umožňující používat libovolné zařízení s webovým prohlížečem jako druhou obrazovku, viz videoukázka. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPLv3.

Ladislav Hagara | Komentářů: 12
včera 09:00 | Zajímavý software

Byla vydána nová verze 0.11.0 raw photo editoru Filmulator. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv3. Ke stažení je také spustitelný balíček ve formátu AppImage.

Ladislav Hagara | Komentářů: 1
23.1. 09:00 | Nová verze

Byla vydána nová verze 13.8 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
22.1. 16:33 | Zajímavý článek

Otevřená certifikační autorita Let’s Encrypt v příspěvku na svém blogu představila své nové databázové servery. Hardware: 2U rack server Dell EMC PowerEdge R7525, CPU 2x AMD EPYC 7542, Memory 2TB 3200MT/s, Storage 24x 6.4TB Intel P4610 NVMe SSD. Software: OpenZFS a MariaDB s InnoDB.

Ladislav Hagara | Komentářů: 38
22.1. 15:33 | Zajímavý článek

Článek systemd pro vývojáře: lokální vývojové servery v systemd na MojeFedora.cz doporučuje vývojářům používání systemd k ovládání svých projektů pomocí "systemctl --user".

Ladislav Hagara | Komentářů: 24
22.1. 14:44 | Nová verze

Vyšla nová verze souborového manažera Midnight Commander 4.8.26. Mezi hlavní novinky patří zachování obsahu příkazové řádky při přepínání panelů pomocí Ctrl+O, stíny okolo dialogových oken jako v Norton Commanderu a dalších (vytvořeno autorem zprávičky), podpora jakkoli dlouhých názvů souborů a spousta dalších drobnějších věcí.

Aleš Janda | Komentářů: 15
22.1. 07:00 | Komunita

Projekty Elasticsearch a Kibana změní s verzí 7.11 licenci. Už se nebude jednat o open source software. Důvodem změny licence byl spor se společností AWS (Amazon Web Services). AWS na změnu licence odpovídá vlastním forkem. Vycházet bude z verze 7.10 a zůstane pod open source licencí Apache.

Ladislav Hagara | Komentářů: 18
21.1. 23:33 | Komunita

Lidé ze společnosti Corellium se včera na Twitteru pochlubili screenshotem Ubuntu na Apple Siliconu aneb zprovoznili Ubuntu na počítači Apple s novým ARM procesorem M1. CTO jej už používá k vývoji ve svém herním křesle s 49 palcovým monitorem. Dnes byly na blogu Corellium publikovány detaily a pro případné zájemce i návod a obraz ke stažení. Upravili obraz Ubuntu pro Raspberry Pi.

Ladislav Hagara | Komentářů: 28
Jestliže používáte distribuci CentOS, kterou náhradu plánujete vzhledem k oznámenému ukončení vydávání?
 (27%)
 (3%)
 (1%)
 (21%)
 (0%)
 (2%)
 (45%)
Celkem 202 hlasů
 Komentářů: 4, poslední dnes 03:13
Rozcestník

Dotaz: Javascript - opakované načteni v HTML

30.9.2020 11:21 plysak1904
Javascript - opakované načteni v HTML
Přečteno: 318×
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 debian+ | skóre: 23 | 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.
Gréta avatar 1.10.2020 13:56 Gréta | skóre: 28 | blog: Grétin blogísek | Stockholm
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

pražáci chraňte svý zdraví a zustaňte v bezpečí paneláků hele, hele a hele!!☃ slíkací doktor fylosofie🤡
Gréta avatar 1.10.2020 14:13 Gréta | skóre: 28 | blog: Grétin blogísek | Stockholm
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

pražáci chraňte svý zdraví a zustaňte v bezpečí paneláků hele, hele a hele!!☃ slíkací doktor fylosofie🤡
Gréta avatar 1.10.2020 14:09 Gréta | skóre: 28 | blog: Grétin blogísek | Stockholm
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

pražáci chraňte svý zdraví a zustaňte v bezpečí paneláků hele, hele a hele!!☃ slíkací doktor fylosofie🤡
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: 34 | 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: 61 | 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.
Gréta avatar 2.10.2020 16:07 Gréta | skóre: 28 | blog: Grétin blogísek | Stockholm
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

pražáci chraňte svý zdraví a zustaňte v bezpečí paneláků hele, hele a hele!!☃ slíkací doktor fylosofie🤡
Gréta avatar 3.10.2020 15:04 Gréta | skóre: 28 | blog: Grétin blogísek | Stockholm
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

pražáci chraňte svý zdraví a zustaňte v bezpečí paneláků hele, hele a hele!!☃ slíkací doktor fylosofie🤡
3.10.2020 19:56 OldFrog {Ondra Nemecek} | skóre: 34 | 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: 34 | 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
Gréta avatar 2.10.2020 16:11 Gréta | skóre: 28 | blog: Grétin blogísek | Stockholm
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>
pražáci chraňte svý zdraví a zustaňte v bezpečí paneláků hele, hele a hele!!☃ slíkací doktor fylosofie🤡
3.10.2020 19:52 OldFrog {Ondra Nemecek} | skóre: 34 | 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.