Lukasz Lenart created WW-5835:
---------------------------------
Summary: Emit each static script src once per request in the
script component
Key: WW-5835
URL: https://issues.apache.org/jira/browse/WW-5835
Project: Struts 2
Issue Type: Improvement
Components: Core Tags
Reporter: Lukasz Lenart
Tag templates that need a framework script include it per instance with
{{<@s.script src="..."/>}}. A page that renders the same tag N times, for
example inside an iterator, therefore emits N identical {{<script src="...">}}
tags.
Templates that include a static script per instance today:
* {{simple/inputtransferselect.ftl}}
* {{simple/optiontransferselect.ftl}}
* {{simple/updownselect.ftl}}
* {{simple/combobox.ftl}} and {{html5/combobox.ftl}} after
[WW-5774|https://issues.apache.org/jira/browse/WW-5774]
The scripts guard themselves with a window-level flag, so the duplicates do not
re-bind listeners. They are still redundant markup, and each one is fetched or
cache-checked by the browser.
Proposal: let the {{Script}} component remember which {{src}} values it has
already written during the current request, for example in a request attribute,
and render nothing for a repeated {{src}}. This removes the duplication for
every static script at once, instead of handling it in each template.
Raised during the review of [PR
#2074|https://github.com/apache/struts/pull/2074].
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)