JS1K: Concurs Javascript 1K

De Wikijoan
Dreceres ràpides: navegació, 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

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines