On 8/27/07, Pekka Jääskeläinen <[EMAIL PROTECTED]> wrote: > > On 8/27/07, Ben Bangert <[EMAIL PROTECTED]> wrote: > > > > I'd highly suggest taking a look at Yahoo's ySlow Firefox extension > > which can rank several important factors that affect how long the > > browser takes to fully load a page. Javascript should be loaded at > > the bottom of your page whenever possible as they'll block the > > browser from downloading images and other page components. > > > Looks like an excellent tool. I'll take a look. >
Yes. Excellent tool indeed. It revealed a problem with cache headers (I've discussed this on IRC with nick 'visit0r'): The tool says: These components do not have a far future Expires header: <http://localhost:5000/style/movietron_original.css> - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:11 GMT Content-Type: text/css Accept-Ranges: bytes Last-Modified: Wed, 22 Aug 2007 16:28:10 GMT Etag: 1187800090.0-12360 Content-Range: 0-12359/12360 Content-Length: 12360 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_1')> (no expires) http://localhost:5000/img/header1.gif - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:11 GMT Content-Type: image/gif Accept-Ranges: bytes Last-Modified: Mon, 02 Jul 2007 18:00:20 GMT Etag: 1183399220.0-10983 Content-Range: 0-10982/10983 Content-Length: 10983 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_2')> (no expires) http://localhost:5000/img/header1b.gif - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:11 GMT Content-Type: image/gif Accept-Ranges: bytes Last-Modified: Mon, 02 Jul 2007 18:00:20 GMT Etag: 1183399220.0-4850 Content-Range: 0-4849/4850 Content-Length: 4850 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_3')> (no expires) http://localhost:5000/img/menu2.gif - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:11 GMT Content-Type: image/gif Accept-Ranges: bytes Last-Modified: Mon, 02 Jul 2007 18:00:20 GMT Etag: 1183399220.0-460 Content-Range: 0-459/460 Content-Length: 460 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_4')> (no expires) http://localhost:5000/img/header1c.gif - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:11 GMT Content-Type: image/gif Accept-Ranges: bytes Last-Modified: Thu, 05 Jul 2007 10:56:57 GMT Etag: 1183633017.0-861 Content-Range: 0-860/861 Content-Length: 861 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_5')> (no expires) http://localhost:5000/img/feed-icon-24x24.png - ParamsHeadersPost Response Headers Content-Type: image/png Accept-Ranges: bytes Last-Modified: Thu, 22 Dec 2005 20:14:26 GMT Etag: 1135282466.0-1090 Content-Range: 0-1089/1090 Content-Length: 1090 Date: Mon, 27 Aug 2007 16:26:11 GMT Server: PasteWSGIServer/0.5 Python/2.5.1 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_6')> (no expires) http://localhost:5000/img/prev_disabled.gif - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:11 GMT Content-Type: image/gif Accept-Ranges: bytes Last-Modified: Fri, 03 Aug 2007 01:00:43 GMT Etag: 1186102843.0-1289 Content-Range: 0-1288/1289 Content-Length: 1289 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_7')> (no expires) http://localhost:5000/img/next.gif - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:12 GMT Content-Type: image/gif Accept-Ranges: bytes Last-Modified: Fri, 03 Aug 2007 00:18:52 GMT Etag: 1186100332.0-1334 Content-Range: 0-1333/1334 Content-Length: 1334 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_8')> (no expires) http://localhost:5000/img/header2.gif - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:12 GMT Content-Type: image/gif Accept-Ranges: bytes Last-Modified: Mon, 02 Jul 2007 18:00:20 GMT Etag: 1183399220.0-650 Content-Range: 0-649/650 Content-Length: 650 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_9')> (no expires) http://localhost:5000/img/menu2.gif - ParamsHeadersPost Response Headers Server: PasteWSGIServer/0.5 Python/2.5.1 Date: Mon, 27 Aug 2007 16:26:11 GMT Content-Type: image/gif Accept-Ranges: bytes Last-Modified: Mon, 02 Jul 2007 18:00:20 GMT Etag: 1183399220.0-460 Content-Range: 0-459/460 Content-Length: 460 Loading... - <javascript:document.yslowContext.viewHeaders('headerExpiresDiv_10')> (no expires) http://localhost:5000/img/taustamatta.gif So, it seems the static contents in 'public' do not have cache headers by default set like they should. This is with Pylons 0.9.6rc3 (upgraded rc-by-rc from 0.9.5). Next issue: These components are not gzipped: *displays the css* here How do I use the gzipper of paster? What should I add to the Pylons conf? Otherwise, it seemed the bottleneck was the .js files, like I suspected. Thanks again for pointing this useful tool out. I might collect these optimization tips to a receipe wiki at some point. -- --PJ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
