JS1K: Concurs Javascript 1K
Salta a la navegació
Salta a la cerca
JS1K
Mirar els exemples, descarregar el codi.
Compressió del codi, exemple pràctic: jCart
JCart és un carrito de la compra basat en Ajax, JQuery, PHP. El script principal, jcart.js, té dues versions: comprimida (jcart.min.js) i sense comprimit (jcart.js).
Anem a veure un exemple pràctic de com es comprimeix una funció. La funció update s'executa quan actualitzes una quantitat en el carret de la compra.
jcart.js:
function update(input) {
// The id of the item to update
var updateId = input.parent().find('[name="jcartItemId[]"]').val();
// The new quantity
var newQty = input.val();
// As long as the visitor has entered a quantity
if (newQty) {
// Update the cart one second after keyup
var updateTimer = window.setTimeout(function() {
// Update the item and refresh cart display
$.ajax({
data: {
"jcartUpdate": 1, // Only the name in this pair is used in jcart.php, but IE chokes on empty values
"itemId": updateId,
"itemQty": newQty,
"jcartIsCheckout": isCheckout,
"jcartToken": token
}
});
}, 1000);
}
El codi equivalent és: jcart.min.js:
function g(l){var o=l.parent().find('[name="jcartItemId[]"]').val();var n=l.val();if(n){var m=window.setTimeout(function(){$.ajax({data:{jcartUpdate:1,itemId:o,itemQty:n,jcartIsCheckout:c,jcartToken:e}})},1000)}l.keydown(function(p){if(p.which!==9){window.clearTimeout(m)}})}
i si tabulem la funció tenim:
function g(l){
var o=l.parent().find('[name="jcartItemId[]"]').val();
var n=l.val();
if(n){
var m=window.setTimeout(function(){
$.ajax({
data:{
jcartUpdate:1,
itemId:o,
itemQty:n,
jcartIsCheckout:c,
jcartToken:e
}
})
},1000)
}
l.keydown(function(p){
if(p.which!==9){window.clearTimeout(m)}})
}
Per trobar la funció original només cal canviar els noms de les variables, afegir els comentaris, afegir punts i coma al final de la línia (que recordem que són opcionals)...
creat per Joan Quintana Compte, maig 2013