Jump to content

User talk:SD0001/Making user scripts load faster

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by PrimeBOT (talk | contribs) at 11:48, 13 September 2021 (Conflict with [[User:MusikAnimal/scriptManager|scriptManager]]: Task 24: removal of a template following a TFD). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Further issue with spihelper

This script seemingly does not work with spihelper again. It worked for a bit, but now does not work again. The error from the console is "Uncaught (in promise) ReferenceError: displayMessage is not defined". This seemingly seems to be the script not working well with importing scripts from cached scripts. The displayMessage function is in a imported javascript file in spihelper. When adding "?nocache=yes" to the URL it does not cause the error. I also manually called "displayMessage" with and without the cache and confirmed that with cache the javascript console does not have the function defined. However, the network tab shows that regardless of cache being enabled or not enabled the displayMessage javascript file is still downloaded or has loaded the cached result (and using the api method if caching is enabled). I'm using Firefox. Dreamy Jazz talk to me | my contributions 22:07, 3 June 2021 (UTC)[reply]

@Dreamy Jazz Thanks for the note. Just seeing this now. Should be fixed. I replaced use of eval with inserting a <script> tag, which seems to make the behaviour more like the uncached method.
Going by the book, if User:Timotheus Canens/displaymessage.js wants displayMessage to be globally exposed, it should really be doing window.displayMessage = function() {...}. I'm surprised that it even works. – SD0001 (talk) 16:55, 13 June 2021 (UTC)[reply]

Conflict with scriptManager

@SD0001: I think this has a conflict with scriptManager, meaning it ignores scriptManager-installed scripts. Also, the text to be copied and pasted could be replaced with {{subst:User:SD0001/userscript-load-caching.min.js}} and {{subst:User:SD0001/userscript-load-caching.js}}, respectively. ― Qwerfjkl | 𝕋𝔸𝕃𝕂  (please use {{reply to|Qwerfjkl}} on reply) 13:56, 13 June 2021 (UTC)[reply]

@Qwerfjkl I made some changes per the above section. Could you check again? Looking at scriptManager's source code, I can't think of a reason why the two would conflict. Also, does it now work with RedWarn? – SD0001 (talk) 11:55, 15 June 2021 (UTC)[reply]
@SD0001 We now just need Ed6767 to apply the changes to User:RedWarn/.js. ― Qwerfjkl | 𝕋𝔸𝕃𝕂  (please use {{reply to|Qwerfjkl}} on reply) 15:55, 15 June 2021 (UTC)[reply]
@SD0001 With scriptManager enbled I get this error:
mdlLogic.js:1 Uncaught URIError: URI malformed
at decodeURIComponent (<anonymous>)
at Function.t.EPPyTH (mdlLogic.js:1)
at t (mdlLogic.js:1)
at Object.mw.loader.load (<anonymous>:3:767)
at HTMLAnchorElement.loadScript (index.php?action=raw&ctype=text/javascript&title=User%3AMusikAnimal%2FscriptManager.js:15)
at HTMLAnchorElement.dispatch (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:70)
at HTMLAnchorElement.elemData.handle (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:66) ― Qwerfjkl | 𝕋𝔸𝕃𝕂  (please use {{reply to|Qwerfjkl}} on reply) 15:59, 15 June 2021 (UTC)[reply]
@Qwerfjkl I just tested with both (scriptManager & RedWarn) and they all work fine for me now. The changes to User:RedWarn/.js are already applied.
As to why it isn't working for you, it might be because of complications in your common.js. You can remove those if (scriptManager == ...) conditions now as scriptManager and script caching wouldn't conflict. Also, avoid redefining importScript (lines 4-6) as the script caching code does this internally. – SD0001 (talk) 16:38, 15 June 2021 (UTC)[reply]
@SD0001 I think I've removed all of the unecessary code (messily). ― Qwerfjkl | 𝕋𝔸𝕃𝕂  (please use {{reply to|Qwerfjkl}} on reply) 16:55, 15 June 2021 (UTC)[reply]
@SD0001 I now get (which I think stopped me from saving an edit):
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52 Uncaught TypeError: Cannot read property 'end' of null
at jQuery.fn.init.getCaretPosition (<anonymous>:137:580)
at jQuery.fn.init.$.fn.textSelection (<anonymous>:205:237)
at jQuery.fn.init.$.fn.wikiEditor (load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:11)
at Object.mw.addWikiEditor (load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:5)
at HTMLDocument.<anonymous> (load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:5)
at mightThrow (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:49)
at process (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:50)
mdlLogic.js:1 Uncaught URIError: URI malformed
at decodeURIComponent (<anonymous>)
at Function.t.EPPyTH (mdlLogic.js:1)
at t (mdlLogic.js:1)
at Object.mw.loader.load (<anonymous>:2:180)
at Object.preloadDeflate (<anonymous>:155:854)
at <anonymous>:462:348 ― Qwerfjkl | 𝕋𝔸𝕃𝕂  (please use {{reply to|Qwerfjkl}} on reply) 16:59, 15 June 2021 (UTC)[reply]
My eror console in full:
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:145 JQMIGRATE: Migrate is installed with logging active, version 3.3.2
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:339 This page is using the deprecated ResourceLoader module "jquery.ui".
Please use OOUI instead.
mw.loader.implement.css @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:339
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146 JQMIGRATE: jQuery.isFunction is deprecated
migrateWarn @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146 JQMIGRATE: jQuery.fn.delegate is deprecated
migrateWarn @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146 JQMIGRATE: jQuery.type is deprecated
migrateWarn @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146
2VM1905:661 Use of "importScriptURI" is deprecated. Use mw.loader instead.
maybeLog @ VM1905:661
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52 jQuery.Deferred exception: Cannot read property 'indexOf' of undefined TypeError: Cannot read property 'indexOf' of undefined
at Array.<anonymous> (<anonymous>:760:12)
at Object.ARA_Functions.getSuggestions (<anonymous>:380:24)
at Object.ARA_Functions.scan (<anonymous>:299:45)
at HTMLDocument.<anonymous> (<anonymous>:22:16)
at mightThrow (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:49:833)
at process (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:50:498) undefined
jQuery.Deferred.exceptionHook @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52 Uncaught TypeError: Cannot read property 'indexOf' of undefined
at Array.<anonymous> (<anonymous>:760:12)
at Object.ARA_Functions.getSuggestions (<anonymous>:380:24)
at Object.ARA_Functions.scan (<anonymous>:299:45)
at HTMLDocument.<anonymous> (<anonymous>:22:16)
at mightThrow (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:49)
at process (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:50)
VM1905:661 Use of "userscript-regexframework-regexTool" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regsearch" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regex" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-setreason" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-setoptions" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-doaction" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-custom" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-customaddnew" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
2VM1905:661 Use of "userscript-regexframework-rfmenu" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regexTool" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regsearch" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regex" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-setreason" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-setoptions" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-doaction" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-custom" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-customaddnew" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-rfmenu" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regexTool" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regsearch" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regex" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-setreason" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-setoptions" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-doaction" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-custom" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-customaddnew" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
2VM1905:661 Use of "userscript-regexframework-rfmenu" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regexTool" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regsearch" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-regex" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-setreason" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-setoptions" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-doaction" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-custom" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-customaddnew" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1905:661 Use of "userscript-regexframework-rfmenu" is deprecated. Use m:TemplateScript instead.
maybeLog @ VM1905:661
VM1853:305 RedWarn 16.1 - (c) 2021 RedWarn Contributors
2mdlLogic.js:1 Uncaught URIError: URI malformed
at decodeURIComponent (<anonymous>)
at Function.t.EPPyTH (mdlLogic.js:1)
at t (mdlLogic.js:1)
at Object.mw.loader.load (<anonymous>:2:180)
at <anonymous>:6:11
at Object.<anonymous> (<anonymous>:1:724)
at mightThrow (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:49)
at process (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:50)
VM1914:2 This page is using the deprecated ResourceLoader module "jquery.throttle-debounce".
Please use OO.ui.throttle/debounce instead. See https://phabricator.wikimedia.org/T213426
(anonymous) @ VM1914:2
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52 jQuery.Deferred exception: URI malformed URIError: URI malformed
at decodeURIComponent (<anonymous>)
at Function.t.EPPyTH (https://redwarn.toolforge.org/cdn/js/mdlLogic.js:1:2695)
at t (https://redwarn.toolforge.org/cdn/js/mdlLogic.js:1:3719)
at Object.mw.loader.load (<anonymous>:2:180)
at Array.<anonymous> (<anonymous>:38:12)
at mightThrow (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:49:833)
at process (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:50:498) undefined
jQuery.Deferred.exceptionHook @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146 JQMIGRATE: jQuery.trim is deprecated; use String.prototype.trim
migrateWarn @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52 jQuery.Deferred exception: Cannot read property 'end' of null TypeError: Cannot read property 'end' of null
at jQuery.fn.init.getCaretPosition (<anonymous>:137:580)
at jQuery.fn.init.$.fn.textSelection (<anonymous>:205:237)
at jQuery.fn.init.$.fn.wikiEditor (https://en.wikipedia.org/w/load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:11:344)
at Object.mw.addWikiEditor (https://en.wikipedia.org/w/load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:5:620)
at HTMLDocument.<anonymous> (https://en.wikipedia.org/w/load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:5:527)
at mightThrow (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:49:833)
at process (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:50:498) undefined
jQuery.Deferred.exceptionHook @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146 JQMIGRATE: jQuery.fn.unbind is deprecated
migrateWarn @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:146
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52 Uncaught TypeError: Cannot read property 'end' of null
at jQuery.fn.init.getCaretPosition (<anonymous>:137:580)
at jQuery.fn.init.$.fn.textSelection (<anonymous>:205:237)
at jQuery.fn.init.$.fn.wikiEditor (load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:11)
at Object.mw.addWikiEditor (load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:5)
at HTMLDocument.<anonymous> (load.php?lang=en&modules=ext.wikiEditor&skin=vector&version=1lviy:5)
at mightThrow (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:49)
at process (load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:50)
mdlLogic.js:1 Uncaught URIError: URI malformed
at decodeURIComponent (<anonymous>)
at Function.t.EPPyTH (mdlLogic.js:1)
at t (mdlLogic.js:1)
at Object.mw.loader.load (<anonymous>:2:180)
at Object.preloadDeflate (<anonymous>:155:854)
at <anonymous>:462:348
load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52 jQuery.Deferred exception: URI malformed URIError: URI malformed
at decodeURIComponent (<anonymous>)
at Function.t.EPPyTH (https://redwarn.toolforge.org/cdn/js/mdlLogic.js:1:2695)
at t (https://redwarn.toolforge.org/cdn/js/mdlLogic.js:1:3719)
at Object.mw.loader.load (<anonymous>:2:180)
at VeInitMwDesktopArticleTarget.ve.init.mw.DesktopArticleTarget.saveComplete (<anonymous>:18:677)
at fire (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:46:897)
at fireWith (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:48:96)
at mightThrow (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:50:441)
at process (https://en.wikipedia.org/w/load.php?lang=en&modules=jquery%2Coojs-ui-core%7Cjquery.ui&skin=vector&version=1a0i7:50:498) undefined
jQuery.Deferred.exceptionHook @ load.php?lang=en&modules=jquery%2Coojs-ui-core|jquery.ui&skin=vector&version=1a0i7:52
DevTools failed to load source map: Could not load content for https://redwarn.toolforge.org/cdn/css/jquery.contextMenu.min.css.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://redwarn.toolforge.org/cdn/js/jquery.contextMenu.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://redwarn.toolforge.org/cdn/js/material.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE ― Qwerfjkl | 𝕋𝔸𝕃𝕂  (please use {{reply to|Qwerfjkl}} on reply) 17:02, 15 June 2021 (UTC)[reply]
@SD0001 For both of these revisions of my common.js page, I cannot edit: [1] [2] Qwerfjkl | 𝕋𝔸𝕃𝕂  (please use {{reply to|Qwerfjkl}} on reply) 17:15, 15 June 2021 (UTC)[reply]
That's strange. I have the copy of [3] in my common.js right now, but I am able to edit. It's very rare for user script issues to interfere with editing ability. – SD0001 (talk) 17:20, 15 June 2021 (UTC)[reply]
@Qwerfjkl: Do you also have browser extensions enabled? That might be making the difference. From the stack trace you posted, it seems to me most of those errors are coming from RedWarn. Try disabling RedWarn. If all else fails, I'd suggest deleting everything from common.js and then going on adding the scripts you use one by one until the issue comes up again. – SD0001 (talk) 17:25, 15 June 2021 (UTC)[reply]
@SD0001 RedWarn seems to be the problem. I'll post a notice there. ― Qwerfjkl | 𝕋𝔸𝕃𝕂  (please use {{reply to|Qwerfjkl}} on reply) 17:42, 15 June 2021 (UTC)[reply]
information This editing deficiency was a problem relating to the 2017 WikiText editor.Qwerfjkltalk 07:57, 22 July 2021 (UTC)[reply]