Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Minify HTML, CSS and JS Perl modules

by $h4X4_|=73}{ (Monk)
on Jan 21, 2017 at 10:25 UTC ( [id://1180077]=perlquestion: print w/replies, xml ) Need Help??

$h4X4_|=73}{ has asked for the wisdom of the Perl Monks concerning the following question:

I have looked through some of the Perl modules that minify HTML, CSS and JS, But none do exactly what I want done.
There are a few minify modules I have seen that come close HTML::Packer, CSS::Packer and JavaScript::Packer.
Those modules will manly remove extra white-spaces and condense the markup or code so it can be downloaded faster.

What I am looking for is a module that can compare HTML, CSS and JavaScript files. Then rebuild the HTML with only the CSS and JavaScript used in the HTML.
Anyone know if this module exists?

Update: The idea is to have the CSS and JavaScript used in the source of the HTML so no more files are needed for downloading, making the trip to the site faster.

Replies are listed 'Best First'.
Re: Minify HTML, CSS and JS Perl modules
by haukex (Archbishop) on Jan 21, 2017 at 10:47 UTC

    Hi $h4X4_|=73}{,

    What I am looking for is a module that can compare HTML, CSS and JavaScript files. Then rebuild the HTML with only the CSS and JavaScript used in the HTML.

    Note that JavaScript can dynamically modify CSS, JavaScript, and HTML. So, to find out which CSS classes and JavaScript functions are used, you'd have to execute the JavaScript and trace all the function calls and accesses to CSS classes somehow. And if any user input is involved, you'd never be certain which functions and classes will be used. So to achieve your goal, you'd have to be certain that none of these dynamic accesses are happening. Is that the case in your JS?

    Update: The idea is to have the CSS and JavaScript used in the source of the HTML so no more files are needed for downloading, making the trip to the site faster.

    First step in optimization: measure the current status, so that later you know how much of a speed-up you have achieved. How slow is the page load currently? How many different HTML, CSS and JS files with what sizes are we talking about?

    Regards,
    -- Hauke D

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1180077]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (6)
As of 2024-04-25 10:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found