The jquery statement
$(selector).find(":input[data-val=true]").each(....) - line 173 jquery.validate.unobtrusive.js within the Parse(selector) method.
Provides better performance if it is re-written as a chained statement, oppose to as a single selector:
$(selector).find("input").filter["data-val=true]").each(..)
This is because it allows JQuery to use less of the Sizzle engine (which is known to be poor). On a large DOM, it has shown performance improvements of an order of magnitude firing the DOMContentLoaded event.
We have reduced the duration of our Document ready method from 700ms to 300ms.
Thanks,
Comments: Ryan, I've updated JSPerf to reflect the changes you've made, and things are now technically slower... $(selector).find(":input").filter("[data-val=true]") - is slower than the original counter-part. Also looking at the diff - It doesn't look like you've removed the original offending code, just added in extra code
$(selector).find(":input[data-val=true]").each(....) - line 173 jquery.validate.unobtrusive.js within the Parse(selector) method.
Provides better performance if it is re-written as a chained statement, oppose to as a single selector:
$(selector).find("input").filter["data-val=true]").each(..)
This is because it allows JQuery to use less of the Sizzle engine (which is known to be poor). On a large DOM, it has shown performance improvements of an order of magnitude firing the DOMContentLoaded event.
We have reduced the duration of our Document ready method from 700ms to 300ms.
Thanks,
Comments: Ryan, I've updated JSPerf to reflect the changes you've made, and things are now technically slower... $(selector).find(":input").filter("[data-val=true]") - is slower than the original counter-part. Also looking at the diff - It doesn't look like you've removed the original offending code, just added in extra code