Pensar num site estático sem JavaScript já se pode considerar que é um trabalho "monstruoso" pois temos de saber e dominar o HTML e o CSS. Mas qualquer um pode fazer algo simples, copiando código de outros exemplos e aplicando no site que quer desenvolver.
Mesmo assim, se pensarmos na perspectiva do servidor, existe outro trabalho que precisa de ser gerido para o cliente possa interagir com o site.
É aqui que entra a monstruosidade da simplicidade.
Se isto fosse a comunicação entre duas pessoas, a simplicidade, seria igualmente monstruosa, mas na perspectiva de quem está de fora a observar é pura simplicidade.
O Manel diz à Maria: "creio que vai chover", em voz alta ( o protocolo é o Som e o método é o Verbo ) e a Maria que tem um corpo com as propriedades necessárias para lidar com a informação que foi pronunciada recebe a informação pelas orelhas, as qual será interpretada pelo cérebro, sendo que o cérebro tem de dividir os dados e compara-los com o que conhece e é nesse momento, depois de interpretar a informação, que fez uma verificação das probabilidades dessa afirmação, para saber se podia ser verdadeira ou não e construiu um objecto informativo que responde com os dados que foram anunciados. A Maria diz ao Manel: "creio que tens razão, devemos ir para casa". A resposta da Maria, afirma e confirma a afirmação anunciada pelo Manel e acrescenta uma nova informação que terá de ser gerida pelo Manel para dar continuidade à conversa entre o Manel e a Maria.
Seja servidor real seja Docker, os serviços que queremos usar são independentes da plataforma.
O Hardware electrónico que pode servir milhares de funções, também é monstruosamente simples.
O Hardware mecânico que serve várias funções, também é monstruosamente simples.
O que há de comum? Cada singularidade tem uma função de interpretação e uma funçáo de resposta.
Desde o componente mais simples de um relógio eletrónico até ao mais complexo como um CPU.
Por isso, de uma forma simplificada, as máquinas só sabem interpretar impulsos eléctricos, também como as pessoas, mas como esse tipo de comunição é complexa de gerir, criam-se novas formas de comunicar, que fazem parte das camadas de comunicação do protocolo TCP/UDP e Sockets. Mesmo assim, programar sockets é monstruosamente difícil, sendo que para quem sabe, é monstruosamente simples.
A comunicação entre a Maria e o Manel poderia ter mais detalhes a explicar o processo de destruturação da informaçáo e recriação de informação para responder, mas os processos lógicos que usaram para comparar a informação, etc.. é igualmente electrónico, mas a intensidade da electricidade é muito menor.
Voltando aos computadores, o Manel usou o protocolo SOM+Verbo.
O Protocolo para servir dados em sites, é o HTTP e usa métodos de pedidos de informação tais como o GET e o POST, que são os mais comuns de usar. Na nossa interpretação como humanos, a comunicação entre servidores e\ou máquinas e\ou serviços e\ou programas e\ou fecheiro de código, é unicamente visual e não usa verbo nem língua gestual. O verbo é usado como comentário para guiar a interpretação do código. O Código é a estrutura das várias linguagens que são usadas para servir um site e que são representadas em ficheiros de texto, com a extensão .css, .html, .js, .json, .xml.
Podemos considerar que estas são as extensões principais que são usadas na construção de um site, sendo que na perspectiva da comunicação, o JavaScript tem funcionalidades para lidar de com diferentes permissões os ficheiros dessas extensões. O JavaScript pode alterar as propriedades dos ficheiros em tempo real ( sem alterar o orignal ) de HTML e CSS. Ficheiros com a extensão de .json e .xml não têm propriedades de expressão no site e como tal, servem o propósito de estruturar dados estáticos. Esses dados podem ser filtrados de forma a apresentar unicamente os dados que queremos partilhar, na associação de uma função que poderá ser usada para activar um evento (click), para que esse evento que é gerido pelo JavaScript, faça um pedido da informação estática que está estruturada num ficheiro .json ou .xml. Conforme o ficheiro, existe duas abordagens e\ou métodos diferentes para ler o contúdo dos ficheiros, organizar a informação e enviar a informação para ser expressa como conteúdo na <tab> da página de HTML.
Ao ler a documentação sobre a comunicação entre servidor e cliente usando o protocolo HTTP, usando JavaScript, encontramos uma terminologia chamada Ajax. Asynchronous JavaScript and XML. Não sendo o Ajax uma tecnologias é antes de tudo uma forma de interagir com as várias tecnologias, tais como, HTML ou XHTML, CSS, JavaScript, DOM, XML, XSLT e o mais importante, o objecto XMLHttpRequest. O XML é cada vez menos usado e por isso focamo-nos no JSON, sendo que é importante lembrar que existem sites que ainda usam o XML para representar e partilhar conteudos informativos que podem ser usados como conteúdo de sites.
O objecto XMLHttpRequest tem funções e é considerado um API. ( Application Protocol Interface )
Como terei dito no post anterior, o JavaScript tem funções que no Browser servem a comunicação de dados e que essas dados são representados e geridos por {objectos} sendo que os objectos tèm funções.
O JavaScript no browser tem um {objecto} para lidar com dados organizados em JSON, chamado JSON e este objecto tem duas funções: o parse e o stringify.
Como exemplo simples, temos o seguinte:
// app.js
// exemplo do método Parse
const jsonObject = '{"Nome:Macaco, Caracteristica:Preguiçoso"}';
const lerObject = JSON.parse(jsonObject);
console.log(lerObject.Nome); // Macaco
console.log(lerObject.Caracteristica); // Preguiçoso
É importante reparar que os dados que são usados, estão entre aspas e serão interpretados com "strings". Mesmo assim, o JavaScript sabe que aquele conjunto de strings é um objecto de JSON porque a estrutura do objecto segue as normas que o JSON exige para representar os objectos. Por esta razão, para aceder ao conteudo do objecto, temos de referir o objecto e a chave do conteudo. nomedoObjct.Chave. Ẽ importante também lembrar que para termos acesso ao conteúdo do objecto, temos de associar o conteúdo do objecto a uma nova variavel que irá conter o resultado da função JSON.parse(). É a partir desta nova variavel que temos acesso ao conteúdo do objecto.
Na publicação anterior, refere de uma forma muito simples, os Objectos e os Objectivos, sendo que disse que só os objectos têm funções. Isto pode ser mal interpretado e por isso volto a referir essa publicação. Os ficheiros de JavaScript podem conter funções que não estão dentro de objectos e os objectos podem estar dentro de funções. Mas para simplificar a forma de interagir com os objectos com JavaScript no Browser ora o JavaScript no NodeJS, tive de considerar dizer isso. Os Arrays(listas[]) também podem ter objectos, mas para já ( alguém que me corrija ), creio que os arrays[] não podem ter funções como propriedade do array[], senão usando a palavra reservada "new" na declaração de uma função.
Usando a outra função do objecto JSON no JavaScript para o Browser, chamada stringify() temos o processo de conversão da representação de um objecto, array ou função para "strings". Este método consegue interpretar e traduzir ora {obejctos}, ora [arrays] ora (funções).
// app.js
console.log(JSON.stringify({a: 1, b:2}));
console.log(JSON.stringify([new Number(3), new String('false'), new Boolean(false)]));
console.log(JSON.,stringify(new Date(2022, 0, 2, 19, 30, 0)));
- Funções
Falar de funções poderá ser outro post, talvez o seguinte, mas quero falar um pouco neste aqui.
A definição de uma função em JavaScript tem a seguinte estrutura:
// app.js - isto é um comentário
function fun() { // declaração da função com nome.
// aqui ficam as instruções que queremos dar a esta função
console.log("esta é a função fun e é muito divertida");
}; // fim da declaração da função
fun(); // chamar função
Quando o JavaScript interpreta uma palavra com parentises, executa a função.
Dentro dos parentises podemos acrescentar variaveis, chamados de argumentos, para associar um valor aos mesmos e dar-lhes uma função de expressão.
// app.js
function add(a, b) { // variaveis posśiveis - 2
c = a + b; // soma os dois valores inseridos
console.log(c) // imprimir resultado
}
add(200, 32); // 232
A abordagem dos vários temas que devemos considerar saber antes de começar a fazer seja lá o que for, são tantos que ficamos com aquela sensação de estar a lidar com um monstro selvagem. A humanidade tem demonstrado que até os animais selvagens se adaptam às pessoas e às sociedades. Tal como a humanidade se adaptou às máquinas e lhes deu uso.
São sempre questões de comunicação.
Comentários
Enviar um comentário