Page Speed Optimization Libraries
1.2.24.1
|
#include "js_combine_filter.h"
Public Member Functions | |
JsCombineFilter (RewriteDriver *rewrite_driver) | |
virtual const char * | id () const |
Static Public Member Functions | |
static void | InitStats (Statistics *statistics) |
Registers the provided statistics variable names with 'statistics'. | |
Static Public Attributes | |
static const char | kJsFileCountReduction [] |
statistics variable name | |
Protected Member Functions | |
virtual void | StartDocumentImpl () |
RewriteFilter overrides --- HTML parsing event handlers. | |
virtual void | StartElementImpl (HtmlElement *element) |
virtual void | EndElementImpl (HtmlElement *element) |
virtual void | Characters (HtmlCharactersNode *characters) |
Called for raw characters between tags. | |
virtual void | Flush () |
virtual void | IEDirective (HtmlIEDirectiveNode *directive) |
virtual const char * | Name () const |
The name of this filter -- used for logging and debugging. | |
virtual RewriteContext * | MakeRewriteContext () |
virtual const UrlSegmentEncoder * | encoder () const |
Friends | |
class | JsCombineFilterTest |
Implements combining of multiple external JS files into one via the following transformation:
<script src="a.js"> <stuff> <script src="b.js">
gets turned into:
<script src="a.js+b.js"> <script>eval(mod_pagespeed_${hash("a.js")})</script> <stuff> <script>eval(mod_pagespeed_${hash("b.js")})</script>
where $hash stands for using the active Hasher and tweaking the result to be a valid identifier continuation. Further, the combined source file has the code: var mod_pagespeed_${hash("a.js")} = "code of a.js as a string literal"; var mod_pagespeed_${hash("b.js")} = "code of b.js as a string literal";
net_instaweb::JsCombineFilter::JsCombineFilter | ( | RewriteDriver * | rewrite_driver | ) | [explicit] |
rewrite_driver is the context owning us, and filter_id is the ID we are registered under.
virtual const UrlSegmentEncoder* net_instaweb::JsCombineFilter::encoder | ( | ) | const [inline, protected, virtual] |
All RewriteFilters define how they encode URLs and other associated information needed for a rewrite into a URL. The default implementation handles a single URL with no extra data. The filter owns the encoder.
Reimplemented from net_instaweb::RewriteFilter.
virtual void net_instaweb::JsCombineFilter::Flush | ( | ) | [protected, virtual] |
Notifies the Filter that a flush is occurring. A filter that's generating streamed output should flush at this time. A filter that's mutating elements can mutate any element seen since the most recent flush; once an element is flushed it is already on the wire to its destination and it's too late to mutate. Flush is initiated by an application calling HttpParse::Flush().
Flush() is called after all other handlers during a HttpParse::Flush().
Reimplemented from net_instaweb::EmptyHtmlFilter.
virtual void net_instaweb::JsCombineFilter::IEDirective | ( | HtmlIEDirectiveNode * | directive | ) | [protected, virtual] |
Called for an IE directive; typically used for CSS styling. See http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx
Reimplemented from net_instaweb::EmptyHtmlFilter.
virtual RewriteContext* net_instaweb::JsCombineFilter::MakeRewriteContext | ( | ) | [protected, virtual] |
Generates a RewriteContext appropriate for this filter. Default implementation returns NULL. This must be overridden by filters. This is used to implement Fetch.
Reimplemented from net_instaweb::RewriteFilter.