Michael Freidgeim's Blog
MS .Net Development
posts - 503
, comments - 895
, trackbacks - 171
<< ReplaceBetweenTags function with delegate to describe transformation
|
Home
|
Case-insensitive Contains extension for list of strings >>
Select tool to minimize JavaScript and CSS size
There are multiple ways and techniques how to combine and minify JS and CSS files.
The good number of links can be found in
http://stackoverflow.com/questions/882937/asp-net-script-and-css-compression
and in
http://www.hanselman.com/blog/TheImportanceAndEaseOfMinifyingYourCSSAndJavaScriptAndOptimizingPNGsForYourBlogOrWebsite.aspx
There are 2 major approaches- do it during build or at run-time.
In our application there are multiple user-controls, each of them required different JS or CSS files, and they loaded dynamically in the different combinations. We decided that loading all JS or CSS files for each page is not a good idea, but for each page we need to load different set of files.
Based on this combining files on the build stage does not looks feasible.
After Reviewing different links I’ve decided that
squishit
should fit to our needs.
http://www.codethinked.com/squishit-the-friendly-aspnet-javascript-and-css-squisher
Different limitations of using SquishIt.
We had some browser specific CSS files, that loaded conditionally depending of browser type(i.e IE and all other browsers). We had to put them in separate bundles,
For Resources and AXD files we decide to use
HttpModule and HttpHandler created by
Mads Kristensen
To GZIP html we are using wwWebUtils.GZipEncodePage()
http://www.west-wind.com/weblog/posts/2007/Feb/05/More-on-GZip-compression-with-ASPNET-Content
Just swap the order of which encoding you apply to start by asking for deflate support and then GZip afterwards.
Additional tips about SquishIt.
Use CDN:
https://groups.google.com/group/squishit/browse_thread/thread/99f3b61444da9ad1
Support intellisense and generate bundle in codebehind
http://tech.kipusoep.nl/2010/07/23/umbraco-45-visual-studio-2010-dotless-jquery-vsdoc-squishit-masterpages/
Links about other Libraries that were considered
A few links from
http://stackoverflow.com/questions/5288656/which-one-has-better-minification-between-squishit-and-combres2
.Net 4.5 will have out-of-the-box tools for JS/CSS combining.
http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx
. It suggests default bundle of subfolder, but also seems supporting similar to
squishit
explicitly specified files.
http://www.codeproject.com/KB/aspnet/combres2.aspx
config XML file can specify expiry etc
https://github.com/andrewdavey/cassette
http://stackoverflow.com/questions/7026029/alternatives-to-cassette
Dynamically loaded JS files requireJS
http://requirejs.org/docs/start.html
http://www.west-wind.com/weblog/posts/2008/Jul/07/Inclusion-of-JavaScript-Files
Pack and minimize your JavaScript code size
YUI Compressor
(from Yahoo)
JSMin
(by Douglas Crockford)
ShrinkSafe
(from Dojo library)
Packer
(by Dean Edwards)
RadScriptManager
& RadStyleSheetManager -fromTeleric(not free)
Tools to optimize performance:
PageSpeed tools family
http://code.google.com/intl/ru/speed/page-speed/download.html
v
Share This Post:
Short Url:
http://wblo.gs/cqZ
posted @ Sunday, April 15, 2012 8:08 PM
Print
Comments on this entry:
No comments posted yet.
Your comment:
Title:
Name:
Email:
(not displayed)
Website:
Comment:
Remember Me?
Enter the code shown above
Live Comment Preview:
«
May
»
Sun
Mon
Tue
Wed
Thu
Fri
Sat
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
About
Contact
Login
Tag Cloud
CodeProject
IIS
more tags...
Article Categories
ASP.NET
.Net Framework
DotNetNuke
Code Generation
Helper Classes
Archives
May 2013 (3)
March 2013 (3)
February 2013 (5)
December 2012 (4)
November 2012 (1)
October 2012 (4)
September 2012 (4)
August 2012 (3)
July 2012 (3)
June 2012 (4)
May 2012 (3)
April 2012 (11)
March 2012 (4)
January 2012 (3)
December 2011 (2)
November 2011 (1)
October 2011 (1)
September 2011 (8)
August 2011 (1)
July 2011 (4)
June 2011 (16)
May 2011 (11)
July 2010 (4)
June 2010 (8)
May 2010 (3)
March 2010 (1)
December 2009 (1)
November 2009 (3)
September 2009 (3)
August 2009 (1)
July 2009 (5)
June 2009 (5)
May 2009 (7)
April 2009 (2)
March 2009 (5)
February 2009 (5)
January 2009 (10)
December 2008 (8)
November 2008 (7)
October 2008 (5)
September 2008 (3)
August 2008 (4)
July 2008 (15)
June 2008 (4)
May 2008 (12)
April 2008 (6)
March 2008 (6)
February 2008 (14)
January 2008 (11)
December 2007 (2)
November 2007 (3)
October 2007 (18)
September 2007 (7)
August 2007 (2)
July 2007 (6)
June 2007 (9)
May 2007 (10)
April 2007 (2)
March 2007 (19)
February 2007 (5)
January 2007 (3)
December 2006 (6)
November 2006 (6)
October 2006 (7)
September 2006 (10)
August 2006 (17)
July 2006 (9)
June 2006 (6)
May 2006 (9)
April 2006 (7)
March 2006 (21)
February 2006 (22)
January 2006 (11)
December 2005 (5)
November 2005 (5)
October 2005 (8)
September 2005 (5)
August 2005 (4)
July 2005 (2)
Post Categories
DotNetNuke
ASP.NET
.Net Framework
SQL Server
Active Directory
MS Access
Deployment
Web Services/WCF
Z39.50
Code Generation
.Net Remoting
Blogging
Testing/Debugging/Logging
MOM
Visual Studio/TFS
AJAX
CSS/DHTML/JavaScript
Workflow
General Tips
LINQ
Batch files/PowerShell
Helper Functions
iPad
Validation
Links
My del.icio.us
My MS feedback
StackOverflow
Syndication:
RSS
ATOM