Remove the spaces in the beginning of html template strings.
$( html ) require html to start with '<'
See https://bugzilla.wikimedia.org/show_bug.cgi?id=65400
Change-Id: I93eaf41390ab72fcae1b8d4015585bc4f82e6f8a
We have uls = this for scoping, but then we randomly switch between the two, even when 'this' is allowed. We only need to used the local variable in un-proxied anonymous functions.
* Removed unused class end.
* Class uls-lcd-region-section was used in two different elements,
retained it on the outer one.
* Build a list of languages per region, once done render the regions at once.
* Use direct dom manipulation in hot spots.
* Use shorter selectors like children instead of find and dropping the tag name.
* Fixed mismatch when there were no results and when the message was shown.
* Less flickering by not hiding or showing regions unnecessary
* Cache the common languages "quicklist"
* Added itemsPerColumn as an option
Reduces time used to show language selector after clicking the trigger on my
machine from about 1.8s to about 380 ms (JS execution times, actual times are
about the same but little bigger. The actual rendering is now less than 100ms,
the rest is other setup overheard and $.fn.scrollIntoView which can take many
hundreds of milliseconds.
It was merely a stopgap solution to the problem of the dialog taking
forever to load. With that problem solved all of this awful code is no
longer needed.
The loading should be fast enough now after Id9397631 is merged,
taking no more than a second or two to render entirely. We could
consider showing a spinner while it's loading, but it doesn't seem
necessary.
This makes bug 39923 invalid.
Every time an item is added to the list - 387 times for me - we
shuffle elements around and add at least one new one. This causes
browsers to trigger style recalculation (to figure out which styles
apply to elements with such and such classes) and content reflows
(how the text and elements are wrapped to fit available width).
We can avoid this by simply detaching the parent element from the DOM
tree and attaching it back once we're done - this make it only trigger
one recalculation and one reflow.
In my profiling on Opera on a Thinkpad T60 (with lazy-loading
disabled), these two steps took respectively around 600ms and 400ms.
Now they're down to around 50ms each.