# HG changeset patch # User Alexander Plavin # Date 1378459858 -14400 # Node ID 14fddba036f89cf4935a80e392342e3d306f0aa2 # Parent 28b1b7b9b4a9b580f71ae8cb3e82f4d0a914a768 hgweb: optimize process_dates function This function looped over every node due to getElementsByTagName('*'), instead of using selectors. In this patch we use querySelectorAll('.age') and process only these nodes, which is much faster and also doesn't require extra condition. Browser compatibility isn't sacrificed: IE 8+, FF 3.5+, Opera 10+. diff -r 28b1b7b9b4a9 -r 14fddba036f8 mercurial/templates/static/mercurial.js --- a/mercurial/templates/static/mercurial.js Thu Aug 29 09:22:15 2013 -0700 +++ b/mercurial/templates/static/mercurial.js Fri Sep 06 13:30:58 2013 +0400 @@ -253,21 +253,18 @@ } } - var nodes = document.getElementsByTagName('*'); - var ageclass = new RegExp('\\bage\\b'); + var nodes = document.querySelectorAll('.age'); var dateclass = new RegExp('\\bdate\\b'); for (var i=0; i