Main.preParser performance optimization. Use getElementsByClassName for "quotelink" and "backlink".
querySelectorAll was slower, and Array.prototype.slice was an overkill. This speeds up the preParser by about 35%.
This commit is contained in:
parent
14d48f59b2
commit
7ab4487020
@ -3163,14 +3163,19 @@
|
|||||||
return g.callbacks.push(this.node);
|
return g.callbacks.push(this.node);
|
||||||
},
|
},
|
||||||
node: function(post) {
|
node: function(post) {
|
||||||
var quote, _i, _len, _ref;
|
var quote, _i, _j, _len, _len2, _ref, _ref2;
|
||||||
_ref = post.quotes.concat(post.backlinks);
|
_ref = post.quotes;
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
quote = _ref[_i];
|
quote = _ref[_i];
|
||||||
if (!quote.hash) continue;
|
if (!quote.hash) continue;
|
||||||
quote.removeAttribute('onclick');
|
quote.removeAttribute('onclick');
|
||||||
$.on(quote, 'click', QuoteInline.toggle);
|
$.on(quote, 'click', QuoteInline.toggle);
|
||||||
}
|
}
|
||||||
|
_ref2 = post.backlinks;
|
||||||
|
for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
|
||||||
|
quote = _ref2[_j];
|
||||||
|
$.on(quote, 'click', QuoteInline.toggle);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
toggle: function(e) {
|
toggle: function(e) {
|
||||||
var id;
|
var id;
|
||||||
@ -3289,12 +3294,17 @@
|
|||||||
return g.callbacks.push(this.node);
|
return g.callbacks.push(this.node);
|
||||||
},
|
},
|
||||||
node: function(post) {
|
node: function(post) {
|
||||||
var quote, _i, _len, _ref;
|
var quote, _i, _j, _len, _len2, _ref, _ref2;
|
||||||
_ref = post.quotes.concat(post.backlinks);
|
_ref = post.quotes;
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
quote = _ref[_i];
|
quote = _ref[_i];
|
||||||
if (quote.hash) $.on(quote, 'mouseover', QuotePreview.mouseover);
|
if (quote.hash) $.on(quote, 'mouseover', QuotePreview.mouseover);
|
||||||
}
|
}
|
||||||
|
_ref2 = post.backlinks;
|
||||||
|
for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
|
||||||
|
quote = _ref2[_j];
|
||||||
|
$.on(quote, 'mouseover', QuotePreview.mouseover);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
mouseover: function(e) {
|
mouseover: function(e) {
|
||||||
var el, id, qp, quote, replyID, threadID, _i, _len, _ref;
|
var el, id, qp, quote, replyID, threadID, _i, _len, _ref;
|
||||||
@ -3988,8 +3998,8 @@
|
|||||||
isInlined: /\binline\b/.test(klass),
|
isInlined: /\binline\b/.test(klass),
|
||||||
filesize: $('.filesize', node),
|
filesize: $('.filesize', node),
|
||||||
img: $('img[md5]', node),
|
img: $('img[md5]', node),
|
||||||
quotes: $$('.quotelink', node),
|
quotes: node.getElementsByClassName('quotelink'),
|
||||||
backlinks: $$('.backlink', node)
|
backlinks: node.getElementsByClassName('backlink')
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
node: function(nodes, notify) {
|
node: function(nodes, notify) {
|
||||||
|
|||||||
@ -2620,10 +2620,12 @@ QuoteInline =
|
|||||||
init: ->
|
init: ->
|
||||||
g.callbacks.push @node
|
g.callbacks.push @node
|
||||||
node: (post) ->
|
node: (post) ->
|
||||||
for quote in post.quotes.concat post.backlinks
|
for quote in post.quotes
|
||||||
continue unless quote.hash
|
continue unless quote.hash
|
||||||
quote.removeAttribute 'onclick'
|
quote.removeAttribute 'onclick'
|
||||||
$.on quote, 'click', QuoteInline.toggle
|
$.on quote, 'click', QuoteInline.toggle
|
||||||
|
for quote in post.backlinks
|
||||||
|
$.on quote, 'click', QuoteInline.toggle
|
||||||
return
|
return
|
||||||
toggle: (e) ->
|
toggle: (e) ->
|
||||||
return if e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or e.button isnt 0
|
return if e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or e.button isnt 0
|
||||||
@ -2712,8 +2714,10 @@ QuotePreview =
|
|||||||
init: ->
|
init: ->
|
||||||
g.callbacks.push @node
|
g.callbacks.push @node
|
||||||
node: (post) ->
|
node: (post) ->
|
||||||
for quote in post.quotes.concat post.backlinks
|
for quote in post.quotes
|
||||||
$.on quote, 'mouseover', QuotePreview.mouseover if quote.hash
|
$.on quote, 'mouseover', QuotePreview.mouseover if quote.hash
|
||||||
|
for quote in post.backlinks
|
||||||
|
$.on quote, 'mouseover', QuotePreview.mouseover
|
||||||
return
|
return
|
||||||
mouseover: (e) ->
|
mouseover: (e) ->
|
||||||
return if /\binlined\b/.test @className
|
return if /\binlined\b/.test @className
|
||||||
@ -3324,8 +3328,8 @@ Main =
|
|||||||
isInlined: /\binline\b/.test klass
|
isInlined: /\binline\b/.test klass
|
||||||
filesize: $ '.filesize', node
|
filesize: $ '.filesize', node
|
||||||
img: $ 'img[md5]', node
|
img: $ 'img[md5]', node
|
||||||
quotes: $$ '.quotelink', node
|
quotes: node.getElementsByClassName 'quotelink'
|
||||||
backlinks: $$ '.backlink', node
|
backlinks: node.getElementsByClassName 'backlink'
|
||||||
node: (nodes, notify) ->
|
node: (nodes, notify) ->
|
||||||
for callback in g.callbacks
|
for callback in g.callbacks
|
||||||
try
|
try
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user