Sobes.tech
Senior

Opowiedz o zasadzie Code-On-Demand.

sobes.tech AI

Odpowiedź od AI

Zasada Code-On-Demand (Kod na żądanie) jest jednym z opcjonalnych stylów architektonicznych interakcji w REST, gdy serwer może tymczasowo rozszerzać funkcjonalność klienta, przesyłając mu kod wykonywalny.

Pozwala to na uczynienie klienta bardziej cienkim, przenosząc część logiki na serwer, który jest ładowany "na żądanie" w razie potrzeby.

Przykłady użycia:

  • JavaScript w aplikacjach internetowych: Serwer wysyła kod JavaScript do przeglądarki, który jest wykonywany po stronie klienta w celu realizacji interaktywności, walidacji danych, zapytań asynchronicznych itp.
  • Wtyczki i rozszerzenia: Serwer może dostarczyć kod do rozszerzenia funkcjonalności aplikacji lub klienta.

Zalety:

  • Zmniejszenie ilości przesyłanych danych: Kod jest wysyłany tylko wtedy, gdy jest potrzebny.
  • Elastyczność: Serwer może dynamicznie zmieniać zachowanie klienta.
  • Bardziej cienki klient: Klient nie musi implementować całej możliwej funkcjonalności z góry.

Wady:

  • Złożoność implementacji i bezpieczeństwa: Wymaga mechanizmu do bezpiecznego przesyłania i wykonywania kodu po stronie klienta.
  • Wydajność: Ładowanie i wykonywanie kodu może zająć czas.
// Przykład Code-On-Demand w sieci: serwer wysyła JS do walidacji formularza
// Serwer wysyła HTML z formularzem i skryptem
/*
<html>
<body>
  <form id="myForm">
    <input type="text" id="myInput">
    <button type="submit">Wyślij</button>
  </form>

  <script src="/validate.js"></script> // Skrypt ładowany "na żądanie"
</body>
</html>
*/

// Zawartość /validate.js
// Ten kod jest wykonywany po stronie klienta po załadowaniu
document.getElementById('myForm').addEventListener('submit', function(event) {
  const input = document.getElementById('myInput');
  if (input.value.trim() === '') {
    alert('Pole nie może być puste!');
    event.preventDefault(); // Anuluje wysłanie formularza
  }
});