OpenNTF/JavascriptAggregator — pull request #98 by chuckdumont (2014-01-10 14:00:57+00:00)
Title: Reduce size of feature list in request URL

This change dramatically reduces the size of the data used to specify features in request URLs. Previous versions of JAGGR sent the list of features defined on the client as a plain text list of strings, either on the URL itself, or in an accompanying cookie. With this change, the list of features is encoded as a trit map (a trit is analogous to a bit, except that it has three possible states - true, false and don't care) of values assigned to a list of possible features that has previously been sent to the client.

To utilize this feature, the client application includes the module 'combo/featureMap'. This module specifies the list of has features that may be specified in JAGGR requests (determined when the application code was scanned for dependency evaluation). Feature's not included in this list don't matter to JAGGR because no optimizations will be performed based on the value of the unspecified features. The 'combo/featureMap' module also contains the logic for encoding trit map and adding the hasEnc URL query arg to JAGGR requests.