Os quadros javascript mudam com o tempo e alguns deixam espaço para outros. Este é o caso para o framework Prototype que foi suplantado nos últimos anos por jQuery.
Vejamos neste exemplo as diferenças de chamar uma função Ajax para o tratamento de um formulário de contacto minimalisto.
O script de processamento do lado do servidor chama-se processForm.php. Retorna uma cadeia de caracteres começando por 'ack' se tudo correr bem ou 'err' se um erro ter encontrado, depois um separador (':::') e, finalmente, a mensagem a ser exibida.
A função javascript displayMessage que usamos aqui mostrará a mensagem de uma maneira diferente dependendo do seu tipo, mas não será desenvolvida.
Nós nos concentramos aqui a destacar as diferenças e as semelhanças entre os dois códigos, assim não vamos procurar torná-los muito específicos aos seus quadros respectivos, a ideia sendo facilitar a migração de um quadro para outro.
Vejamos neste exemplo as diferenças de chamar uma função Ajax para o tratamento de um formulário de contacto minimalisto.
O script de processamento do lado do servidor chama-se processForm.php. Retorna uma cadeia de caracteres começando por 'ack' se tudo correr bem ou 'err' se um erro ter encontrado, depois um separador (':::') e, finalmente, a mensagem a ser exibida.
A função javascript displayMessage que usamos aqui mostrará a mensagem de uma maneira diferente dependendo do seu tipo, mas não será desenvolvida.
Nós nos concentramos aqui a destacar as diferenças e as semelhanças entre os dois códigos, assim não vamos procurar torná-los muito específicos aos seus quadros respectivos, a ideia sendo facilitar a migração de um quadro para outro.
Prototype
function sendContactForm(email, subject, message) {
new Ajax.Request('processForm.php', {
method: 'post',
parameters: {
email: email,
subject: subject,
message: message
},
onSuccess: function(transport){processSendContactForm(transport.responseText)}
});
}
function processSendContactForm(response) {
if (response != '') {
var tmp = response.split(':::');
// tmp[0] is either 'ack' (acknowledgment) or 'err' (error)
displayMessage(tmp[0], tmp[1]);
}
}
jQuery
var sendContactForm;
$(document).ready(function(){
$(function() {
sendContactForm = function(email, subject, message) {
$.ajax({
type: "POST",
url: "processForm.php",
cache: false,
data: "email=" + email + "&subject=" + subject + "&message=" + message,
success: function(response){
// tmp[0] is either 'ack' (acknowledgment) or 'err' (error)
displayMessage(tmp[0], tmp[1]);
}
});
}
});
});
A diferença notável entre as duas implementações é a compacidade relativa do código jQuery. Quando Prototype requer duas funções, uma para o envio da requisição e a outra para o seu tratamento, jQuery só precisa de uma.
A função sendContactForm é definida como uma variável javascript fora do bloco $(document).ready a fim de poder chamá-la diretamente no código HTML (exemplo: <form onsubmit="sendContactForm($('#email').val(), $('#subject').val(), $('#message').val())" />).
Como este exemplo o mostra, a portabilidade de Prototype para jQuery é relativamente fácil para as funções Ajax. É o mesmo para as funções de apresentação simples geridas por Scriptaculous de um lado e jQuery do outro.
A função sendContactForm é definida como uma variável javascript fora do bloco $(document).ready a fim de poder chamá-la diretamente no código HTML (exemplo: <form onsubmit="sendContactForm($('#email').val(), $('#subject').val(), $('#message').val())" />).
Como este exemplo o mostra, a portabilidade de Prototype para jQuery é relativamente fácil para as funções Ajax. É o mesmo para as funções de apresentação simples geridas por Scriptaculous de um lado e jQuery do outro.
Portage de code de Prototype à jQuery (em francês)
Porting Prototype code to jQuery (em inglês)
Migración de código Prototype al framework jQuery (em espanhol)
Sem comentários:
Enviar um comentário