[wp-trac] [WordPress Trac] #55618: combine/concatenate enqueued relative js/css
WordPress Trac
noreply at wordpress.org
Mon Apr 25 22:33:12 UTC 2022
#55618: combine/concatenate enqueued relative js/css
-----------------------------+-----------------------------
Reporter: briandd | Owner: (none)
Type: feature request | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Script Loader | Version:
Severity: normal | Keywords:
Focuses: javascript, css |
-----------------------------+-----------------------------
What everybody is looking for nowadays is to optimize the speed of
websites and one of the ways is to compress/optimize/combine jss/css
files.
There are many plugins to do that but many of them are clunky or load
multiple versions in different pages which doesn't improve the speed.
I think the combining part should be done by the application, and if it's
done through the WP core it would be better, like with load-scripts.php in
the admin panel.
One way to do it is to combine js/css that have been enqueued using
relative paths, and keep a hash of each, then keep a hash of all hashes -
or simply timestamps.
for example
wp-content/themes/XX/style.css -> timestamp of it
wp-content/plugins/XX/whatever.css -> timestamp of it
save as 1 transient all paths+timestamps above as key and as value the
combined css
Propose to serve it dynamically or statically by either serving the
content through a php file (like i think it was done in the admin panel)
or saving the combined version in a cache folder (would probably need a
hashing for the filename).
+ checking regularly through the wp-cron that they didn't change. Instead
of timestamp it could be hashes (propose 2 different hashing, timestamp
check only is much faster, or $ver+timestamp, $ver, $ver+hash etc).
If served dynamically also allow to set the expiration.
And add options to refresh(force to resave)/clear (in db only)/purge (also
delete local cache files).
You could also integrate some of the logic of load-styles load-scripts,
this was an example.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/55618>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list