xtras/mathuaerknedam 145:d05cec964c9e: Massive speed improvement...

commits at adium.im commits at adium.im
Thu Oct 29 21:20:30 UTC 2009


details:	http://hg.adium.im/xtras/mathuaerknedam/rev/d05cec964c9e
revision:	145:d05cec964c9e
author:		mathuaerknedam
date:		Thu Oct 29 16:20:17 2009 -0500

Massive speed improvements to allbysender javascript.

diffs (243 lines):

diff -r dff847602153 -r d05cec964c9e Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Footer.html
--- a/Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Footer.html	Thu Oct 29 12:50:29 2009 -0500
+++ b/Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Footer.html	Thu Oct 29 16:20:17 2009 -0500
@@ -1,40 +1,44 @@
 <script type="text/javascript">
-var highlightActive = false;
-function selectSender() {
-	if (highlightActive || event.target.tagName.toLowerCase() == 'a')
-		return;
-	highlightActive = true;
-	var node = event.target;
-	var senderName = null;
-	while (!senderName) {
-		var nodeClass = node.className;
-		if (/(^|[\s])message/.test(nodeClass)) {
-			var parts = nodeClass.split(" ");
-			senderName = parts[parts.length - 1];
+
+	var highlightActive = false;
+
+	function selectSender() {
+		if (highlightActive || event.target.tagName.toLowerCase() == 'a')
+			return;
+		highlightActive = true;
+		var node = event.target;
+		var senderName = null;
+		while (!senderName) {
+			var nodeClass = node.className;
+			if (/(^|[\s])message/.test(nodeClass)) {
+				var parts = nodeClass.split(" ");
+				senderName = parts[parts.length - 1];
+			}
+			node = node.parentElement;
 		}
-		node = node.parentElement;
+		var elms = document.getElementsByClassName(senderName); var elemArray = new Array(elms.length); for (var i=0; i<elms.length; i++) { elemArray[i]=elms[i]; }
+		var len = elemArray.length;
+		for(var i = 0; i < len; i++) { 
+			elemArray[i].className += ' x-hover';
+		} 
 	}
-	var elms = document.getElementsByClassName(senderName); var elemArray = new Array(elms.length); for (var i=0; i<elms.length; i++) { elemArray[i]=elms[i]; }
-	var len = elms.length;
-	for(var i = 0; i < len; i++) { 
-		elms[i].className += ' x-hover';
-	} 
-}
-function deselectAll() {
-	if (!highlightActive)
-		return;
-	var elms = document.querySelectorAll(".x-hover");
-	var len = elms.length;
-	var elm = null;
-	for(var i = 0; i < len; i++) { 
-		elm = elms[i];
-		elm.className = elm.className.replace(' x-hover', ''); 
+
+	function deselectAll() {
+		if (!highlightActive)
+			return;
+		var elms = document.querySelectorAll(".x-hover");
+		var len = elms.length;
+		var elm = null;
+		for(var i = 0; i < len; i++) { 
+			elm = elms[i];
+			elm.className = elm.className.replace(' x-hover', ''); 
+		}
+		highlightActive = false;
 	}
-	highlightActive = false;
-}
-document.body.addEventListener("mousedown", selectSender, false);
-document.body.addEventListener("mouseup", deselectAll, false);
-var htmlElm = document.getElementsByTagName("html")[0];
-document.documentElement.addEventListener("mouseout", function() { if (event.relatedTarget == htmlElm) { deselectAll(); }}, false);
+
+	document.body.addEventListener("mousedown", selectSender, false);
+	document.body.addEventListener("mouseup", deselectAll, false);
+	var htmlElm = document.getElementsByTagName("html")[0];
+	document.documentElement.addEventListener("mouseout", function() { if (event.relatedTarget == htmlElm) { deselectAll(); }}, false);
+
 </script>
-
diff -r dff847602153 -r d05cec964c9e Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Mockup-SpecialCases.html
--- a/Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Mockup-SpecialCases.html	Thu Oct 29 12:50:29 2009 -0500
+++ b/Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Mockup-SpecialCases.html	Thu Oct 29 16:20:17 2009 -0500
@@ -359,6 +359,7 @@
 <hr id="focus" style="position: absolute; top: 824px;">
 
 <script type="text/javascript">
+
 	var highlightActive = false;
 
 	function selectSender() {
@@ -376,9 +377,9 @@
 			node = node.parentElement;
 		}
 		var elms = document.getElementsByClassName(senderName); var elemArray = new Array(elms.length); for (var i=0; i<elms.length; i++) { elemArray[i]=elms[i]; }
-		var len = elms.length;
+		var len = elemArray.length;
 		for(var i = 0; i < len; i++) { 
-			elms[i].className += ' x-hover';
+			elemArray[i].className += ' x-hover';
 		} 
 	}
 
@@ -395,11 +396,12 @@
 		highlightActive = false;
 	}
 
-document.body.addEventListener("mousedown", selectSender, false);
-document.body.addEventListener("mouseup", deselectAll, false);
-var htmlElm = document.getElementsByTagName("html")[0];
-document.documentElement.addEventListener("mouseout", function() { if (event.relatedTarget == htmlElm) { deselectAll(); }}, false);
+	document.body.addEventListener("mousedown", selectSender, false);
+	document.body.addEventListener("mouseup", deselectAll, false);
+	var htmlElm = document.getElementsByTagName("html")[0];
+	document.documentElement.addEventListener("mouseout", function() { if (event.relatedTarget == htmlElm) { deselectAll(); }}, false);
 
 </script>
+
 </body>
 </html>
diff -r dff847602153 -r d05cec964c9e Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Mockup.html
--- a/Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Mockup.html	Thu Oct 29 12:50:29 2009 -0500
+++ b/Smooth Operator ☿.AdiumMessageStyle/Contents/Resources/Mockup.html	Thu Oct 29 16:20:17 2009 -0500
@@ -230,9 +230,9 @@
 			node = node.parentElement;
 		}
 		var elms = document.getElementsByClassName(senderName); var elemArray = new Array(elms.length); for (var i=0; i<elms.length; i++) { elemArray[i]=elms[i]; }
-		var len = elms.length;
+		var len = elemArray.length;
 		for(var i = 0; i < len; i++) { 
-			elms[i].className += ' x-hover';
+			elemArray[i].className += ' x-hover';
 		} 
 	}
 
@@ -255,5 +255,6 @@
 	document.documentElement.addEventListener("mouseout", function() { if (event.relatedTarget == htmlElm) { deselectAll(); }}, false);
 
 </script>
+
 </body>
 </html>
diff -r dff847602153 -r d05cec964c9e yMous ☿.AdiumMessageStyle/Contents/Resources/Footer.html
--- a/yMous ☿.AdiumMessageStyle/Contents/Resources/Footer.html	Thu Oct 29 12:50:29 2009 -0500
+++ b/yMous ☿.AdiumMessageStyle/Contents/Resources/Footer.html	Thu Oct 29 16:20:17 2009 -0500
@@ -1,40 +1,44 @@
 <script type="text/javascript">
-var highlightActive = false;
-function selectSender() {
-	if (highlightActive || event.target.tagName.toLowerCase() == 'a')
-		return;
-	highlightActive = true;
-	var node = event.target;
-	var senderName = null;
-	while (!senderName) {
-		var nodeClass = node.className;
-		if (/(^|[\s])message/.test(nodeClass)) {
-			var parts = nodeClass.split(" ");
-			senderName = parts[parts.length - 1];
+
+	var highlightActive = false;
+
+	function selectSender() {
+		if (highlightActive || event.target.tagName.toLowerCase() == 'a')
+			return;
+		highlightActive = true;
+		var node = event.target;
+		var senderName = null;
+		while (!senderName) {
+			var nodeClass = node.className;
+			if (/(^|[\s])message/.test(nodeClass)) {
+				var parts = nodeClass.split(" ");
+				senderName = parts[parts.length - 1];
+			}
+			node = node.parentElement;
 		}
-		node = node.parentElement;
+		var elms = document.getElementsByClassName(senderName); var elemArray = new Array(elms.length); for (var i=0; i<elms.length; i++) { elemArray[i]=elms[i]; }
+		var len = elemArray.length;
+		for(var i = 0; i < len; i++) { 
+			elemArray[i].className += ' x-hover';
+		} 
 	}
-	var elms = document.getElementsByClassName(senderName); var elemArray = new Array(elms.length); for (var i=0; i<elms.length; i++) { elemArray[i]=elms[i]; }
-	var len = elms.length;
-	for(var i = 0; i < len; i++) { 
-		elms[i].className += ' x-hover';
-	} 
-}
-function deselectAll() {
-	if (!highlightActive)
-		return;
-	var elms = document.querySelectorAll(".x-hover");
-	var len = elms.length;
-	var elm = null;
-	for(var i = 0; i < len; i++) { 
-		elm = elms[i];
-		elm.className = elm.className.replace(' x-hover', ''); 
+
+	function deselectAll() {
+		if (!highlightActive)
+			return;
+		var elms = document.querySelectorAll(".x-hover");
+		var len = elms.length;
+		var elm = null;
+		for(var i = 0; i < len; i++) { 
+			elm = elms[i];
+			elm.className = elm.className.replace(' x-hover', ''); 
+		}
+		highlightActive = false;
 	}
-	highlightActive = false;
-}
-document.body.addEventListener("mousedown", selectSender, false);
-document.body.addEventListener("mouseup", deselectAll, false);
-var htmlElm = document.getElementsByTagName("html")[0];
-document.documentElement.addEventListener("mouseout", function() { if (event.relatedTarget == htmlElm) { deselectAll(); }}, false);
+
+	document.body.addEventListener("mousedown", selectSender, false);
+	document.body.addEventListener("mouseup", deselectAll, false);
+	var htmlElm = document.getElementsByTagName("html")[0];
+	document.documentElement.addEventListener("mouseout", function() { if (event.relatedTarget == htmlElm) { deselectAll(); }}, false);
+
 </script>
-
diff -r dff847602153 -r d05cec964c9e yMous ☿.AdiumMessageStyle/Contents/Resources/Mockup.html
--- a/yMous ☿.AdiumMessageStyle/Contents/Resources/Mockup.html	Thu Oct 29 12:50:29 2009 -0500
+++ b/yMous ☿.AdiumMessageStyle/Contents/Resources/Mockup.html	Thu Oct 29 16:20:17 2009 -0500
@@ -191,9 +191,9 @@
 			node = node.parentElement;
 		}
 		var elms = document.getElementsByClassName(senderName); var elemArray = new Array(elms.length); for (var i=0; i<elms.length; i++) { elemArray[i]=elms[i]; }
-		var len = elms.length;
+		var len = elemArray.length;
 		for(var i = 0; i < len; i++) { 
-			elms[i].className += ' x-hover';
+			elemArray[i].className += ' x-hover';
 		} 
 	}
 


More information about the commits mailing list