Sobes.tech
Senior

Fale sobre o princípio de Code-On-Demand.

sobes.tech IA

Resposta da IA

O princípio de Code-On-Demand (Código sob demanda) é um dos estilos arquiteturais opcionais de interação no REST, onde o servidor pode temporariamente expandir a funcionalidade do cliente enviando-lhe código executável.

Isto permite tornar o cliente mais leve, transferindo parte da lógica para o servidor, que é carregada "sob demanda" quando necessário.

Exemplos de uso:

  • JavaScript em aplicações web: O servidor envia código JavaScript ao navegador, que é executado no lado do cliente para implementar interatividade, validação de dados, pedidos assíncronos, etc.
  • Plugins e extensões: O servidor pode fornecer código para expandir a funcionalidade da aplicação ou do cliente.

Vantagens:

  • Redução do volume de dados transmitidos: O código é enviado apenas quando necessário.
  • Flexibilidade: O servidor pode alterar dinamicamente o comportamento do cliente.
  • Cliente mais leve: O cliente não precisa implementar toda a funcionalidade possível de antemão.

Desvantagens:

  • Complexidade na implementação e segurança: É necessário um mecanismo para transmitir e executar de forma segura o código no lado do cliente.
  • Desempenho: O carregamento e execução do código podem levar tempo.
// Exemplo de Code-On-Demand na web: o servidor envia JS para validar um formulário
// O servidor envia HTML com um formulário e um script
/*
<html>
<body>
  <form id="myForm">
    <input type="text" id="myInput">
    <button type="submit">Enviar</button>
  </form>

  <script src="/validate.js"></script> // O script é carregado "sob demanda"
</body>
</html>
*/

// Conteúdo de /validate.js
// Este código é executado no lado do cliente após o carregamento
document.getElementById('myForm').addEventListener('submit', function(event) {
  const input = document.getElementById('myInput');
  if (input.value.trim() === '') {
    alert('O campo não pode estar vazio!');
    event.preventDefault(); // Cancela o envio do formulário
  }
});