Sobes.tech
Senior

Povězte o principu Code-On-Demand.

sobes.tech AI

Odpověď od AI

Princip Code-On-Demand (Kód na požádání) je jedním z volitelných architektonických stylů interakce v REST, kdy server může dočasně rozšířit funkčnost klienta odesláním spustitelného kódu.

To umožňuje, aby byl klient tenčí, přesouváním části logiky na server, který se načítá "na požádání" podle potřeby.

Příklady použití:

  • JavaScript ve webových aplikacích: Server posílá JavaScriptový kód prohlížeči, který se na straně klienta vykonává pro realizaci interaktivity, validace dat, asynchronních požadavků atd.
  • Pluginy a rozšíření: Server může poskytnout kód pro rozšíření funkčnosti aplikace nebo klienta.

Výhody:

  • Snížení objemu přenášených dat: Kód je odesílán pouze tehdy, když je potřeba.
  • Flexibilita: Server může dynamicky měnit chování klienta.
  • Tenčí klient: Klient nemusí implementovat veškerou možnou funkcionalitu předem.

Nevýhody:

  • Složitost implementace a bezpečnosti: Je třeba mechanismus pro spolehlivý přenos a vykonávání kódu na straně klienta.
  • Výkon: Načítání a vykonávání kódu může trvat čas.
// Příklad Code-On-Demand na webu: server posílá JS pro validaci formuláře
// Server posílá HTML s formulářem a skriptem
/*
<html>
<body>
  <form id="myForm">
    <input type="text" id="myInput">
    <button type="submit">Odeslat</button>
  </form>

  <script src="/validate.js"></script> // Skript se načítá "na požádání"
</body>
</html>
*/

// Obsah /validate.js
// Tento kód se vykonává na straně klienta po načtení
document.getElementById('myForm').addEventListener('submit', function(event) {
  const input = document.getElementById('myInput');
  if (input.value.trim() === '') {
    alert('Pole nemůže být prázdné!');
    event.preventDefault(); // Zabraňuje odeslání formuláře
  }
});