From 4fe6ed90caa789e74b1b2013042f308b975766b6 Mon Sep 17 00:00:00 2001 From: Veno Server Date: Thu, 13 Aug 2009 23:53:57 -0500 Subject: [PATCH] Efforts to speed up application; initially ran around ~50ms on initial data loops, now runs in the ~30ms range. Doing division in JS over large loops == insane, I'm guessing because everything is floating point. Multiply by 0.5 instead and we get some nice speedups (odd, I know; best answer I can muster...). --- index.php | 14 +++++------ js/franz.js | 67 +++++++++++++++++++++++++---------------------------- 2 files changed, 38 insertions(+), 43 deletions(-) diff --git a/index.php b/index.php index e02762f..126e8d8 100644 --- a/index.php +++ b/index.php @@ -41,7 +41,7 @@ }); $("#try_these a").click(function() { - img_input.value = this.innerHTML; + img_input.value = "awesome/" + $(this)[0].innerHTML; return false; }); @@ -95,15 +95,15 @@
- +

Try out: - lol.png, - testjubs.jpg, - stars.jpg, - 1600.jpg, - fallout.jpg + lol.png, + testjubs.jpg, + stars.jpg, + 1600.jpg, + fallout.jpg

diff --git a/js/franz.js b/js/franz.js index 1e8f63c..88c65de 100644 --- a/js/franz.js +++ b/js/franz.js @@ -100,76 +100,71 @@ var franz = { return false }, - getHue: function(red,green,blue) { - var min, max, delta, hue; + getHue: function(red, green, blue) { + var min = Math.min(red, Math.min(green, blue)), + max = Math.max(red, Math.max(green, blue)), + delta = max - min, + hue; - min = Math.min(red,Math.min(green,blue)); - max = Math.max(red,Math.max(green,blue)); - delta = max - min; - - if (max == 0) + if(max == 0) return -1; else { - if (red == max) + if(red == max) hue = (green - blue) / delta; //between yellow & magenta - else if (green == max) + else if(green == max) hue = 2 + (blue - red) / delta; //between cyan & yellow else hue = 4 + (red - green) / delta; //between magenta & cyan // hue degrees hue = hue * 60; - if (hue < 0) hue += 360; + if(hue < 0) hue += 360; } return hue; }, getSatHSV: function(red, green, blue) { - var min, max, delta, sat; - - min = Math.min(red,Math.min(green,blue)); - max = Math.max(red,Math.max(green,blue)); - delta = max - min; - sat = delta / max; + var min = Math.min(red, Math.min(green, blue)), + max = Math.max(red, Math.max(green, blue)), + delta = max - min, + sat = delta / max; return sat; }, - getValHSV: function(red, green, blue) { return Math.max(red,Math.max(green,blue)); }, + getValHSV: function(red, green, blue) { return Math.max(red, Math.max(green,blue)); }, getSatHSL: function(red, green, blue) { - var min, max, sat; - var lightness = franz.getLightHSL(); + var min = Math.min(red, Math.min(green, blue)), + max = Math.max(red, Math.max(green, blue)), + lightness = franz.getLightHSL(), + sat; - min = Math.min(red,Math.min(green,blue)); - max = Math.max(red,Math.max(green,blue)); + if(min == max) return 0; - if (min == max) return 0; - - if (lightness < 1/2) sat = (max-min)/(max+min); - else sat = (max-min)/(2 - (max+min)); + if(lightness < 1/2) sat = (max-min)/(max+min); + else sat = (max - min) / (2 - (max + min)); return sat; }, getLightHSL: function(red, green, blue) { - var min, max; - min = Math.min(red,Math.min(green,blue)); - max = Math.max(red,Math.max(green,blue)); - return 1/2*(min+max); + var min = Math.min(red, Math.min(green, blue)), + max = Math.max(red, Math.max(green, blue)); + return 0.5 * (min + max); }, - /* routines to display color swatches */ displayColors: function(order_array) { - var docString = ""; + var docStr = ""; - for(var i = 0; i < franz.alpha.length; i++) { - docString += '
'; + for(var i = 0; i < franz.alpha.length; i++) { + docStr += '
'; } - - document.getElementById("log_colors").innerHTML = docString; - $("#container_bottom").fadeIn("slow"); + + document.getElementById("log_colors").innerHTML = docStr; + if(typeof jQuery != "undefined") $("#container_bottom").fadeIn("slow"); + else document.getElementById("container_bottom").style.display = "block"; return false; },