Sobes.tech
Senior

Porozprávajte o princípe Code-On-Demand.

sobes.tech AI

Odpoveď od AI

Princíp Code-On-Demand (Kód na požiadanie) je jeden z voliteľných architektonických štýlov interakcie v REST, keď server môže dočasne rozšíriť funkcionalitu klienta odoslaním spustiteľného kódu.

Toto umožňuje, aby bol klient tenší, presúvajúc časť logiky na server, ktorý sa načítava "na požiadanie" podľa potreby.

Príklady použitia:

  • JavaScript v webových aplikáciách: Server odosiela JavaScriptový kód prehliadaču, ktorý sa vykonáva na strane klienta na realizáciu interaktivity, validácie dát, asynchrónnych požiadaviek a pod.
  • Pluginy a rozšírenia: Server môže poskytnúť kód na rozšírenie funkcionality aplikácie alebo klienta.

Výhody:

  • Zníženie objemu prenášaných dát: Kód sa odosiela iba v prípade potreby.
  • Flexibilita: Server môže dynamicky meniť správanie klienta.
  • Tenší klient: Klient nemusí implementovať všetku možnú funkcionalitu vopred.

Nevýhody:

  • Zložitosť implementácie a bezpečnosti: Je potrebný mechanizmus na spoľahlivý prenos a vykonávanie kódu na strane klienta.
  • Výkon: Načítanie a vykonanie kódu môže trvať čas.
// Príklad Code-On-Demand na webe: server odosiela JS na validáciu formulára
// Server odosiela HTML s formulárom a skriptom
/*
<html>
<body>
  <form id="myForm">
    <input type="text" id="myInput">
    <button type="submit">Odoslať</button>
  </form>

  <script src="/validate.js"></script> // Skript sa načítava "na požiadanie"
</body>
</html>
*/

// Obsah /validate.js
// Tento kód sa vykonáva na strane klienta po načítaní
document.getElementById('myForm').addEventListener('submit', function(event) {
  const input = document.getElementById('myInput');
  if (input.value.trim() === '') {
    alert('Pole nemôže byť prázdne!');
    event.preventDefault(); // Zabraňuje odoslaniu formulára
  }
});