I agree, only one version compressed or uncompressed should be enough for a
while.
On 1/31/07, Jeanne Waldman <[EMAIL PROTECTED]> wrote:
Simon Lessard wrote:
> On 1/31/07, Matt Cooper <[EMAIL PROTECTED]> wrote:
>>
>> On 1/31/07, Jeanne Waldman <[EMAIL PROTECTED]> wrote:
>> >
>> > > As Adam suggest, we could do some runtime evaluation during CSS
>> > > generation
>> > > and have many selector uses the same compressed selector, this
would
>> be
>> > a
>> > > 50% gain or so.
>> > I can do this, too, if we feel we have to. The logic flow will have
to
>> > change, of course.
>> > Right now we build the shortened style class map, then we generate
the
>> > css file.
>> > I'd have to either change the shortened style class map as I merge
>> > styles, or create it a bit later.
>> > It's no big deal, just more overhead when we create the file.
>>
>>
>> Maybe this goes without saying but we have to be careful when doing
this
>> so
>> that we only use the same selector when the containment definitions are
>> also
>> the same.
>>
>> If we just have:
>>
>> .Foo,
>> .Bar {
>> color: red;
>> }
>>
>> then this could be compressed down to:
>>
>> .x1 {
>> color: red;
>> }
>>
>> But if we have:
>>
>> .Foo,
>> .Bar {
>> color: red;
>> }
>>
>> .Foo .Joe {
>> color: green;
>> }
>>
>> .Bar .Joe {
>> color: blue;
>> }
>>
>> then we cannot use the same compressed name for Foo and Bar, we'd
>> compress
>> to:
>>
>> .x1,
>> .x2 {
>> color: red;
>> }
>>
>> .x1 .x3 {
>> color: green;
>> }
>>
>> .x2 .x3 {
>> color: blue;
>> }
>>
>> If we had:
>>
>> .Foo,
>> .Bar {
>> color: red;
>> }
>>
>> .Foo .Joe,
>> .Bar .Joe {
>> color: green;
>> }
>>
>> then we could compress down to:
>>
>> .x1 {
>> color: red;
>> }
>>
>> .x1 .x2 {
>> color: green;
>> }
>
>
> Yeah that would require quite a lot of evaluation after parsing, if
> that's
> done maybe we should consider generating the CSS files at app. startup
> rather than at first request because that kind of processing would
> most like
> be O(n!) or O(x^n).
I was thinking if a style is used anywhere else, period, we do not merge
that with another style. That is less processing, at least.
Personally, I think doing the only-generated-compressed-styles solution
or (only-non-uncompressed) is enough to solve this problem for a while.
I think this merging solution is lower priority, and more of a
nice-to-have. What does everyone else think?
If there is another reason to do this, like performance, and we know the
impact, then that's another thing, but I'd like
to focus on this issue and the solution right now -- especially since
we've hit this limit.
- Jeanne