Version: unspecified
Severity: normal
Whiteboard: backlog
URL: https://www.wikidata.org/wiki/Special:Gadgets
Description
Details
- Reference
- bz60536
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Declined | None | T59765 Provide JavaScript hook | |||
Resolved | Lydia_Pintscher | T63131 Eliminate or reduce delay between selection of property and displaying of input fields when adding statements | |||
Resolved | None | T58090 Do not change targets to javascript:void(0); on JavaScript load for various "edit" links | |||
Invalid | None | T56098 [Epic][UI] Front-end performance: Improve loading time of items | |||
Resolved | thiemowmde | T62536 review default gadgets on wikidata.org for performance improvements |
Event Timeline
There are a few gadgets enabled by default on Wikidata.org. They should be reviewed for possible performance improvements.
Right now the default gadgets are:
https://www.wikidata.org/wiki/MediaWiki:Gadget-Search.js - for anyone using Vector or Monobook
https://www.wikidata.org/wiki/MediaWiki:Gadget-AuthorityControl.js
https://www.wikidata.org/wiki/MediaWiki:Gadget-CommonsMedia.js
https://www.wikidata.org/wiki/MediaWiki:Gadget-imagelinks.js
https://www.wikidata.org/wiki/MediaWiki:Gadget-RfDHelper.js - enabled for anyone with the 'delete' right.
I did a code review of all gadgets that are enabled by default.
[[d:MediaWiki:Gadget-RfDHelper.js]] is executed when viewing [[d:Wikidata:Requests for deletions]] only.
[[d:MediaWiki:Gadget-CommonsMedia.js]] does not do anything on Item pages since media files are already linked to Commons.
[[d:MediaWiki:Gadget-imagelinks.js]] is very well written and very fast.
[[d:MediaWiki:Gadget-Search.js]] is a bit "hacky" but very simple and very fast.
[[d:MediaWiki:Gadget-AuthorityControl.js]] does have a bottleneck (nested loops). On very big Item pages it takes about half a second. I made a change request on the talk page.
(In reply to comment #3)
[[d:MediaWiki:Gadget-RfDHelper.js]] is executed when viewing
[[d:Wikidata:Requests for deletions]] only.
I only thought about this when you said that, but the main portion of the script is only executed on [[d:WD:RFD]], however the gadget has a dependency upon 'mediawiki.language', which is loaded on every page even though it isn't used. We can fix that by wrapping the script in a mw.loader.using call, which I'll do today.
(In reply to Kunal Mehta (Legoktm) from comment #4)
I left you a message at [[d:MediaWiki talk:Gadget-RfDHelper.js]].
The bottleneck I found at [[d:MediaWiki:Gadget-AuthorityControl.js]] got fixed. Since there are more nested loops in that script I did some more benchmarking. But all these loops are short (in most cases only 1 iteration). Now the bottleneck is when the anchor elements are added and the page is re-rendered. But this can't be avoided obviously.
I will close this as fixed for now. Please re-open if I should look into other gadgets or new versions of existing ones.