Uživatelské nástroje

Nástroje pro tento web


callback

Toto je starší verze dokumentu!


Obsah

Napiš mni v dokuwiki syntaxi článek do IT encyklopedie na téma: on toggle

On Toggle

On Toggle je událost (event), která se spustí při změně stavu přepínacího prvku (toggle), například přepínače, checkboxu, tlačítka nebo rozbalovacího panelu. V programování a webovém vývoji se používá k reakci na zapnutí, vypnutí nebo přepnutí určité funkce.

K čemu slouží

Událost On Toggle umožňuje aplikaci nebo webové stránce reagovat na změnu stavu uživatelského rozhraní bez nutnosti obnovení stránky nebo dalšího potvrzení uživatelem.

Typické využití:

  Zapnutí nebo vypnutí tmavého režimu.
  Aktivace notifikací.
  Zobrazení nebo skrytí obsahu.
  Povolení či zakázání určité funkce.
  Přepínání mezi různými režimy aplikace.

Princip fungování

Když uživatel změní stav přepínače, systém vyvolá událost On Toggle. Program následně vykoná předem definovaný kód.

Příklad:

 Přepínač: Vypnuto ↓ Uživatel klikne ↓ Přepínač: Zapnuto ↓ Spustí se On Toggle ↓ Provede se příslušná akce 

Použití ve webových aplikacích

V jazyce JavaScript lze změnu stavu sledovat například pomocí události change:

 const toggle = document.getElementById("darkMode");
 
toggle.addEventListener("change", function() {
console.log("Stav byl změněn.");
});

V tomto případě se po změně stavu přepínače vypíše zpráva do konzole.

Použití v mobilních aplikacích

Mobilní platformy, například Android nebo iOS, obsahují přepínací prvky typu Switch, které mají vlastní události pro detekci změny stavu.

Příklad použití:

  Zapnutí GPS.
  Aktivace Bluetooth.
  Povolení synchronizace dat.
  Přepnutí mezi světlým a tmavým motivem.

Výhody

  Okamžitá reakce na akci uživatele.
  Jednoduchá implementace.
  Zlepšuje uživatelský komfort.
  Umožňuje vytvářet interaktivní aplikace.

Nevýhody

  Při nesprávné implementaci může docházet k nechtěným akcím.
  Časté spouštění událostí může snižovat výkon aplikace.
  Vyžaduje správnou správu stavu aplikace.

Související pojmy

  [[event]]
  [[event listener]]
  [[checkbox]]
  [[switch]]
  [[javascript]]
  [[user interface]]
  [[frontend]]

Shrnutí

On Toggle představuje událost vyvolanou změnou stavu přepínacího prvku. Patří mezi běžně používané mechanismy v moderních webových, desktopových i mobilních aplikacích a umožňuje okamžitě reagovat na akce uživatele.

na téma agnostic

Agnostic

Agnostic (česky agnostický) je označení pro software, systém, technologii nebo přístup, který není závislý na konkrétní platformě, technologii, dodavateli nebo prostředí. V oblasti informačních technologií se tento pojem používá k vyjádření nezávislosti a univerzálnosti řešení.

Význam v IT

Pokud je nějaký software nebo technologie označována jako agnostic, znamená to, že může fungovat s různými systémy nebo technologiemi bez nutnosti zásadních úprav.

Příklady:

  Platform agnostic – funguje na různých operačních systémech.
  Database agnostic – podporuje různé databázové systémy.
  Cloud agnostic – není vázán na jednoho poskytovatele cloudových služeb.
  Vendor agnostic – není závislý na konkrétním výrobci nebo dodavateli.

Platform Agnostic

Software označovaný jako platform agnostic lze provozovat na více platformách.

Příklady podporovaných platforem:

  Windows
  Linux
  macOS
  Android
  iOS

Mezi typické příklady patří aplikace vytvořené pomocí technologií Java nebo webové aplikace běžící v internetovém prohlížeči.

Database Agnostic

Aplikace je database agnostic, pokud dokáže pracovat s různými databázemi bez zásadních změn v kódu.

Podporované databáze mohou zahrnovat:

  MySQL
  PostgreSQL
  SQLite
  MariaDB
  Microsoft SQL Server

Toho bývá dosaženo pomocí ORM vrstev nebo databázových abstrakcí.

Cloud Agnostic

Termín cloud agnostic označuje aplikace nebo infrastrukturu, které lze provozovat u různých cloudových poskytovatelů.

Příklady:

  Amazon Web Services (AWS)
  Microsoft Azure
  Google Cloud Platform (GCP)
  Privátní cloudová řešení

Tento přístup snižuje závislost na jediném poskytovateli služeb.

Výhody

  Větší flexibilita.
  Snadnější migrace mezi platformami.
  Nižší závislost na dodavatelích.
  Delší životnost řešení.
  Širší možnosti nasazení.

Nevýhody

  Složitější vývoj.
  Vyšší nároky na testování.
  Omezené využití specifických funkcí jednotlivých platforem.
  Potenciálně vyšší náklady na implementaci.

Praktický příklad

Webová aplikace vytvořená v HTML, CSS a JavaScriptu je z velké části platformově agnostická. Uživatel ji může používat na různých operačních systémech a zařízeních prostřednictvím webového prohlížeče.

Související pojmy

  [[cross-platform]]
  [[vendor lock-in]]
  [[cloud computing]]
  [[virtualization]]
  [[database]]
  [[api]]
  [[orm]]

Shrnutí

Pojem agnostic v IT označuje technologii nebo řešení, které není pevně svázáno s konkrétní platformou, databází, cloudovou službou nebo dodavatelem. Agnostický přístup zvyšuje flexibilitu, přenositelnost a nezávislost systémů, což je důležité zejména v moderním vývoji softwaru a správě infrastruktury.

na témna event

Event

Event (česky událost) je akce nebo změna stavu, která nastane v systému, aplikaci nebo uživatelském rozhraní a může vyvolat určitou reakci programu. Události jsou základním prvkem moderního programování, zejména při vývoji webových, desktopových a mobilních aplikací.

Co je událost

Událost představuje signál, že došlo k určité akci. Tato akce může být vyvolána uživatelem, operačním systémem, hardwarem nebo samotnou aplikací.

Příklady událostí:

  Kliknutí myší.
  Stisknutí klávesy.
  Pohyb kurzoru.
  Přijetí síťové zprávy.
  Dokončení stahování souboru.
  Změna hodnoty formulářového pole.
  Vypršení časovače.

Event-Driven Programming

Mnoho moderních aplikací využívá tzv. event-driven programming (událostmi řízené programování).

Princip fungování:

 Vznik události ↓ Systém událost zaznamená ↓ Je nalezen příslušný obslužný kód ↓ Spustí se reakce programu 

Díky tomuto přístupu aplikace reagují na akce uživatele nebo změny v systému v reálném čase.

Event Handler

Event Handler (obsluha události) je funkce nebo metoda, která se vykoná po vzniku konkrétní události.

Příklad v JavaScriptu:

 button.addEventListener("click", function() { alert("Tlačítko bylo stisknuto."); }); 

Po kliknutí na tlačítko se spustí definovaná funkce.

Typy událostí

Události myši

  click
  dblclick
  mouseover
  mouseout
  mousedown
  mouseup

Události klávesnice

  keydown
  keyup
  keypress

Formulářové události

  change
  submit
  input
  focus
  blur

Události okna

  load
  resize
  scroll
  unload

Použití v praxi

Události se používají například pro:

  Ovládání uživatelského rozhraní.
  Validaci formulářů.
  Dynamické načítání obsahu.
  Komunikaci mezi komponentami aplikace.
  Reakci na síťové a systémové změny.
  Automatizaci procesů.

Výhody

  Interaktivní chování aplikací.
  Efektivní využití systémových prostředků.
  Jednodušší organizace kódu.
  Možnost reagovat na události v reálném čase.

Nevýhody

  Složitější ladění aplikace.
  Obtížnější sledování toku programu.
  Riziko konfliktů mezi více obsluhami událostí.
  Vyšší nároky na správu stavu aplikace.

Související pojmy

  [[event handler]]
  [[event listener]]
  [[callback]]
  [[javascript]]
  [[user interface]]
  [[on click]]
  [[on toggle]]
  [[event-driven programming]]

Shrnutí

Event je událost, která signalizuje, že v systému nebo aplikaci došlo k určité akci či změně stavu. Program na ni může reagovat prostřednictvím obslužného kódu, což umožňuje vytvářet interaktivní a dynamické aplikace. Události tvoří základ většiny moderních uživatelských rozhraní a webových technologií.

event-driven programming

Event-Driven Programming

Event-Driven Programming (česky událostmi řízené programování) je programovací paradigma, ve kterém je tok programu řízen událostmi (eventy). Program nevykonává pouze předem danou posloupnost příkazů, ale čeká na události a reaguje na ně pomocí definovaných funkcí nebo metod.

Tento přístup je široce využíván při vývoji webových, desktopových, mobilních i serverových aplikací.

Princip fungování

V událostmi řízeném programování aplikace neustále naslouchá událostem, které mohou vznikat z různých zdrojů.

Typický průběh:

 Vznik události ↓ Event Queue (fronta událostí) ↓ Event Loop (zpracování událostí) ↓ Event Handler ↓ Provedení akce 

Událost může být vyvolána uživatelem, systémem, hardwarem nebo jinou aplikací.

Zdroje událostí

Uživatelské události

  Kliknutí myší.
  Stisknutí klávesy.
  Dotyk obrazovky.
  Přetažení objektu.

Systémové události

  Spuštění aplikace.
  Ukončení programu.
  Změna velikosti okna.
  Změna síťového připojení.

Časové události

  Vypršení časovače.
  Naplánovaná úloha.
  Periodické spuštění procesu.

Síťové události

  Přijetí dat ze serveru.
  Navázání spojení.
  Odpojení klienta.

Event Handler

Event Handler je funkce, která se spustí při výskytu konkrétní události.

Příklad v JavaScriptu:

 document .getElementById("button") .addEventListener("click", function() { alert("Tlačítko bylo stisknuto."); }); 

Po kliknutí na tlačítko dojde ke spuštění příslušné funkce.

Event Loop

Mnoho moderních prostředí používá mechanismus nazývaný Event Loop.

Jeho úkolem je:

  sledovat frontu událostí,
  vybírat čekající události,
  předávat je odpovídajícím obsluhám,
  zajišťovat plynulý běh aplikace.

Event Loop je klíčovou součástí například JavaScriptu nebo Node.js.

Výhody

  Vysoká interaktivita aplikací.
  Efektivní využití systémových prostředků.
  Dobrá podpora asynchronních operací.
  Přirozené zpracování uživatelských akcí.
  Vhodné pro grafická rozhraní a síťové aplikace.

Nevýhody

  Složitější ladění programu.
  Obtížnější sledování toku vykonávání.
  Riziko vzniku tzv. callback hell.
  Náročnější správa větších aplikací.

Oblasti použití

  Webové aplikace.
  Desktopové aplikace.
  Mobilní aplikace.
  Herní vývoj.
  Serverové aplikace.
  Internet věcí (IoT).
  Síťové služby.

Příklady technologií

  JavaScript
  Node.js
  React
  Angular
  Vue.js
  Qt
  Electron

Související pojmy

  [[event]]
  [[event handler]]
  [[event listener]]
  [[event loop]]
  [[callback]]
  [[asynchronous programming]]
  [[javascript]]
  [[node.js]]

Shrnutí

Event-Driven Programming je programovací paradigma založené na zpracování událostí. Aplikace reaguje na akce uživatele, systémové změny nebo příchozí data prostřednictvím obslužných funkcí. Tento přístup tvoří základ většiny moderních grafických a webových aplikací a umožňuje efektivní práci s asynchronními operacemi.

node.js

Node.js

Node.js je open-source běhové prostředí (runtime environment), které umožňuje spouštět jazyk JavaScript mimo webový prohlížeč. Bylo vytvořeno v roce 2009 vývojářem Ryan Dahl a je postaveno na JavaScriptovém enginu V8, který vyvíjí Google.

Node.js se používá především pro vývoj serverových aplikací, API, síťových služeb, nástrojů příkazové řádky a aplikací pracujících v reálném čase.

Historie

První verze Node.js byla vydána v roce 2009. Jeho hlavním cílem bylo umožnit vývojářům používat JavaScript nejen v prohlížeči, ale také na serveru.

Projekt je dnes spravován organizací OpenJS Foundation a patří mezi nejpoužívanější technologie pro backendový vývoj.

Jak Node.js funguje

Node.js využívá:

  JavaScript Engine V8
  Event Loop
  Asynchronní I/O operace
  Event-Driven Programming

Na rozdíl od tradičních serverových technologií nevytváří nové vlákno pro každý požadavek. Místo toho používá událostní model a neblokující operace.

 Klientský požadavek ↓ Event Loop ↓ Asynchronní zpracování ↓ Odeslání odpovědi 

Tento přístup umožňuje efektivně obsluhovat velké množství současných připojení.

Vlastnosti

  Open-source software.
  Vysoký výkon díky enginu V8.
  Podpora asynchronního programování.
  Velké množství dostupných knihoven.
  Podpora multiplatformního provozu.
  Aktivní komunita vývojářů.

NPM

Součástí Node.js je NPM (Node Package Manager), největší repozitář JavaScriptových balíčků na světě.

Pomocí NPM lze snadno instalovat knihovny a nástroje:

 npm install express 

Jednoduchý příklad

HTTP server v Node.js:

 const http = require('http');
 
const server = http.createServer((req, res) => {
res.writeHead(200);
res.end('Hello World');
});
 
server.listen(3000);

Po spuštění bude server naslouchat na portu 3000.

Oblasti použití

  Webové servery.
  REST API.
  Chatovací aplikace.
  Streamovací služby.
  Mikroservisy.
  IoT aplikace.
  CLI nástroje.
  Backend webových aplikací.

Výhody

  Jeden programovací jazyk pro frontend i backend.
  Vysoký výkon.
  Výborná podpora asynchronních operací.
  Obrovský ekosystém balíčků.
  Rychlý vývoj aplikací.

Nevýhody

  Méně vhodné pro výpočetně náročné úlohy.
  Složitější práce s rozsáhlými asynchronními aplikacemi.
  Kvalita NPM balíčků se může výrazně lišit.

Související pojmy

  [[javascript]]
  [[event loop]]
  [[event-driven programming]]
  [[npm]]
  [[backend]]
  [[rest api]]
  [[express.js]]
  [[v8 engine]]

Shrnutí

Node.js je běhové prostředí umožňující spouštění JavaScriptu na serveru i mimo webový prohlížeč. Díky neblokujícímu I/O modelu, event loopu a rozsáhlému ekosystému NPM patří mezi nejpopulárnější technologie pro vývoj moderních webových a síťových aplikací.

enent loop

Event Loop

Event Loop je mechanismus používaný v prostředích založených na událostech (event-driven systems), který zajišťuje zpracování událostí a asynchronních operací. Je klíčovou součástí technologií jako javascript a node.js.

Jeho úkolem je nepřetržitě sledovat frontu událostí a spouštět příslušné funkce ve chvíli, kdy jsou připraveny k vykonání.

Proč je Event Loop potřeba

JavaScript běží ve většině případů v jednom vlákně (single-threaded). To znamená, že dokáže v jednom okamžiku vykonávat pouze jednu operaci.

Přesto mohou aplikace současně:

  načítat data ze serveru,
  pracovat se soubory,
  čekat na kliknutí uživatele,
  spouštět časovače,
  zpracovávat síťovou komunikaci.

To umožňuje právě mechanismus Event Loop.

Princip fungování

Event Loop neustále kontroluje, zda jsou ve frontě připravené úlohy.

 Call Stack ↓ Asynchronní operace ↓ Callback Queue ↓ Event Loop ↓ Vykonání callbacku 

Průběh:

  Program spustí asynchronní operaci.
  Operace běží mimo hlavní vlákno.
  Po dokončení je callback zařazen do fronty událostí.
  Event Loop zjistí, zda je hlavní zásobník volný.
  Pokud ano, callback se vykoná.

Call Stack

Call Stack (zásobník volání) obsahuje aktuálně vykonávané funkce.

Příklad:

 function first() { second(); }
 
function second() {
console.log("Ahoj");
}
 
first();

Při spuštění se funkce ukládají na zásobník a po dokončení se z něj odebírají.

Callback Queue

Callback Queue obsahuje funkce čekající na spuštění.

Příklad:

 setTimeout(() => { console.log("Hotovo"); }, 1000); 

Po uplynutí jedné sekundy je callback zařazen do fronty a čeká na zpracování Event Loopem.

Příklad fungování

 console.log("První");
 
setTimeout(() => {
console.log("Druhý");
}, 0);
 
console.log("Třetí");

Výstup:

 První Třetí Druhý 

I když je časovač nastaven na 0 ms, callback se vykoná až po dokončení aktuálního kódu.

Event Loop v Node.js

V prostředí node.js Event Loop zajišťuje efektivní obsluhu:

  HTTP požadavků,
  práce se soubory,
  databázových operací,
  síťové komunikace,
  časovačů.

Díky tomu může jediný proces obsluhovat tisíce současných připojení.

Výhody

  Efektivní práce s asynchronními operacemi.
  Nízké nároky na systémové prostředky.
  Vysoká škálovatelnost.
  Jednodušší správa vláken.

Nevýhody

  Dlouhé synchronní operace mohou blokovat celý proces.
  Náročnější pochopení pro začátečníky.
  Chyby v asynchronním kódu se mohou obtížně ladit.

Související pojmy

  [[javascript]]
  [[node.js]]
  [[event]]
  [[event handler]]
  [[event-driven programming]]
  [[callback]]
  [[promise]]
  [[async await]]
  [[call stack]]

Shrnutí

Event Loop je mechanismus, který koordinuje zpracování událostí a asynchronních operací v JavaScriptu a Node.js. Neustále kontroluje frontu událostí a přesouvá připravené úlohy do hlavního zásobníku volání. Díky tomu mohou aplikace efektivně reagovat na uživatelské akce, síťové požadavky i další události bez nutnosti vytváření velkého množství vláken.

event handler

Event Handler

Event Handler (česky obsluha události) je funkce, metoda nebo blok kódu, který se automaticky spustí při vzniku určité události (eventu). Event handlery jsou základním prvkem event-driven programming a používají se ve webových, desktopových i mobilních aplikacích.

Jak funguje

Když nastane určitá událost, systém vyhledá odpovídající event handler a spustí jej.

Příklad:

 Kliknutí na tlačítko ↓ Vznik události "click" ↓ Spuštění Event Handleru ↓ Provedení akce 

Typické události

Event handlery mohou reagovat na různé typy událostí:

Události myši

  click
  dblclick
  mouseover
  mouseout
  mousedown
  mouseup

Události klávesnice

  keydown
  keyup
  keypress

Formulářové události

  change
  input
  submit
  focus
  blur

Systémové události

  load
  resize
  scroll
  unload

Příklad v JavaScriptu

Nejjednodušší event handler:

 function pozdrav() { alert("Ahoj!"); } 

Přiřazení k tlačítku:

 <button onclick="pozdrav()"> Klikni na mě </button> 

Po kliknutí na tlačítko se spustí funkce pozdrav().

Moderní způsob registrace

V moderním JavaScriptu se používá metoda addEventListener():

 const button = document.getElementById("myButton");
 
button.addEventListener("click", function() {
alert("Tlačítko bylo stisknuto.");
});

Tento způsob umožňuje připojit více handlerů ke stejné události.

Parametr Event

Event handler často přijímá objekt event, který obsahuje informace o vzniklé události.

 button.addEventListener("click", function(event) { console.log(event.type); }); 

Výstup:

 click 

Objekt může obsahovat například:

  typ události,
  cílový prvek,
  pozici kurzoru,
  stisknutou klávesu,
  čas vzniku události.

Použití v praxi

Event handlery se používají například pro:

  reakci na kliknutí uživatele,
  validaci formulářů,
  zobrazení dialogových oken,
  načítání dat bez obnovení stránky,
  ovládání multimédií,
  vytváření interaktivních uživatelských rozhraní.

Výhody

  Jednoduchá reakce na události.
  Interaktivní chování aplikace.
  Přehledné oddělení logiky od uživatelského rozhraní.
  Podpora asynchronního programování.

Nevýhody

  Při větším množství handlerů může být kód nepřehledný.
  Nesprávná správa událostí může vést k únikům paměti.
  Obtížnější ladění složitých aplikací.

Související pojmy

  [[event]]
  [[event listener]]
  [[event loop]]
  [[callback]]
  [[javascript]]
  [[event-driven programming]]
  [[dom]]
  [[on click]]
  [[on toggle]]

Shrnutí

Event Handler je funkce nebo metoda, která reaguje na vznik určité události. Po vyvolání události, například kliknutí myší nebo stisknutí klávesy, se automaticky spustí definovaný kód. Event handlery jsou základním stavebním kamenem moderních interaktivních aplikací a webových rozhraní.

callback

Callback

Callback je funkce, která je předána jako argument jiné funkci a je vykonána později, obvykle po dokončení určité operace nebo při vzniku konkrétní události. Callbacky jsou důležitou součástí asynchronous programming a event-driven programming.

Používají se zejména v jazyce javascript, ale lze se s nimi setkat i v mnoha dalších programovacích jazycích.

Jak Callback funguje

Namísto okamžitého vykonání funkce je funkce předána jiné části programu, která ji zavolá ve vhodný okamžik.

 Funkce A ↓ Předá Callback ↓ Proběhne operace ↓ Callback je spuštěn 

Jednoduchý příklad

 function pozdrav() { console.log("Ahoj!"); }
 
function provedAkci(callback) {
callback();
}
 
provedAkci(pozdrav);

Výstup:

 Ahoj! 

Funkce pozdrav() je předána jako callback a vykonána uvnitř funkce provedAkci().

Anonymní Callback

Velmi často se používají anonymní funkce:

 setTimeout(function() { console.log("Čas vypršel."); }, 1000); 

Po uplynutí jedné sekundy je callback automaticky spuštěn.

Callback a události

Callbacky jsou běžnou součástí práce s událostmi.

 button.addEventListener("click", function() { console.log("Kliknutí."); }); 

Anonymní funkce zde představuje callback, který se spustí při události click.

Callback a asynchronní operace

Při načítání dat nebo práci se soubory se callback vykoná až po dokončení operace.

Příklad:

 nactiData(function(data) { console.log(data); }); 

Program mezitím může pokračovat v dalších činnostech.

Callback Hell

Při větším počtu vnořených callbacků může vzniknout problém známý jako Callback Hell.

Příklad:

 akce1(function() { akce2(function() { akce3(function() { akce4(function() {
 
        });
    });
});
 
});

Takový kód je obtížně čitelný a složitě se udržuje.

Moderní alternativa

V moderním JavaScriptu se callbacky často nahrazují pomocí:

  [[promise]]
  [[async await]]

Příklad s Promise:

 fetch("/data") .then(response => response.json()) .then(data => console.log(data)); 

Výhody

  Jednoduchý princip.
  Podpora asynchronních operací.
  Efektivní práce s událostmi.
  Nízké nároky na výkon.

Nevýhody

  Při větším množství callbacků vzniká nepřehledný kód.
  Obtížnější ladění chyb.
  Horší čitelnost u složitějších aplikací.

Oblasti použití

  Zpracování událostí.
  Síťová komunikace.
  Časovače.
  Práce se soubory.
  API požadavky.
  Animace.
  Asynchronní operace.

Související pojmy

  [[event]]
  [[event handler]]
  [[event loop]]
  [[event listener]]
  [[asynchronous programming]]
  [[promise]]
  [[async await]]
  [[javascript]]
  [[node.js]]

Shrnutí

Callback je funkce předaná jiné funkci za účelem jejího pozdějšího vykonání. Callbacky tvoří základ práce s událostmi a asynchronními operacemi v JavaScriptu i dalších programovacích jazycích. Přestože jsou stále široce používány, u složitějších aplikací jsou často nahrazovány technologiemi Promise a Async/Await, které nabízejí přehlednější zápis kódu.

callback.1780739349.txt.gz · Poslední úprava: autor: admin