Ticket #101 (closed Task: fixed)

Opened 4 years ago

Last modified 3 years ago

YSlow analyze + fix the mistakes

Reported by: matt Owned by:
Priority: major Milestone: Piwik 0.9.9 - Stable release
Component: Core Keywords:
Cc: Sensitive:

Description

Run the YSlow! analyze on the piwik User interface and fix the problems using Yahoo suggestions.

Change History

Changed 4 years ago by Christian

1. Make fewer HTTP requests - Grade:F

This page has 19 external JavaScript files.

This page has 5 external StyleSheets.

2. Use a CDN - Grade:F

3. Add an Expires header - Grade:F

These components do not have a far future Expires header:

(no expires)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/datatable.css

(no expires)  http://127.0.0.1/Piwik-Dev/plugins/Dashboard/templates/dashboard.css

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery-calendar.css

(no expires)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/menu.css

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/thickbox.css

(no expires)  http://127.0.0.1/Piwik-Dev/libs/javascript/sprintf.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery.js

(no expires)  http://127.0.0.1/Piwik-Dev/themes/default/common.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery.dimensions.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/tooltip/jquery.tooltip.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/truncate/jquery.truncate.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery.scrollTo.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery-calendar.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/swfobject/swfobject.js

(no expires)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/datatable.js

(no expires)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/calendar.js

(no expires)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/date.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery.blockUI.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/ui.mouse.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/ui.sortable_modif.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/superfish_modified.js

(no expires)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/menu.js

(no expires)  http://127.0.0.1/Piwik-Dev/libs/jquery/thickbox.js

(no expires)  http://127.0.0.1/Piwik-Dev/piwik.js

(no expires)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/images/more_date.gif

(no expires)  http://127.0.0.1/Piwik-Dev/themes/default/images/loading-blue.gif

(no expires)  http://127.0.0.1/Piwik-Dev/piwik.php?url=http%3A%2F%2F127.0.0.1%2FPiwik-Dev%2Findex.php%3Fmodule%3DH[snip]

4. Gzip components - Grade:F

These components are not gzipped:

(13.6K)  http://127.0.0.1/Piwik-Dev/index.php?module=Home&action=index&idSite=1&period=day&date=yesterday

(2.4K)  http://127.0.0.1/Piwik-Dev/libs/javascript/sprintf.js

(52.6K)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery.js

(1.4K)  http://127.0.0.1/Piwik-Dev/themes/default/common.js

(8.5K)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery.dimensions.js

(3.6K)  http://127.0.0.1/Piwik-Dev/libs/jquery/tooltip/jquery.tooltip.js

(1.8K)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery.scrollTo.js

(19.4K)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery-calendar.js

(7.1K)  http://127.0.0.1/Piwik-Dev/libs/swfobject/swfobject.js

(29.0K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/datatable.js

(4.0K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/calendar.js

(2.4K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/date.js

(7.2K)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery.blockUI.js

(6.3K)  http://127.0.0.1/Piwik-Dev/libs/jquery/ui.mouse.js

(7.2K)  http://127.0.0.1/Piwik-Dev/libs/jquery/ui.sortable_modif.js

(4.7K)  http://127.0.0.1/Piwik-Dev/libs/jquery/superfish_modified.js

(2.4K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/menu.js

(12.0K)  http://127.0.0.1/Piwik-Dev/libs/jquery/thickbox.js

(7.1K)  http://127.0.0.1/Piwik-Dev/piwik.js

(5.7K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/datatable.css

(2.4K)  http://127.0.0.1/Piwik-Dev/plugins/Dashboard/templates/dashboard.css

(3.0K)  http://127.0.0.1/Piwik-Dev/libs/jquery/jquery-calendar.css

(1.9K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/menu.css

(4.5K)  http://127.0.0.1/Piwik-Dev/libs/jquery/thickbox.css

5. Put CSS at the top - Grade:A

6. Put JS at the bottom - Grade:A

7. Avoid CSS expressions - Grade:B

4 rules containing "expression" were found across all the CSS text.

 http://127.0.0.1/Piwik-Dev/libs/jquery/thickbox.css (4)

8. Make JS and CSS external - Grade:n/a

Only consider this if your property is a common user home page.

9. Reduce DNS lookups - Grade:A

10. Minify JS - Grade:F

The following JavaScript files do not appear to be obfuscated nor minified.

(1.4K)  http://127.0.0.1/Piwik-Dev/themes/default/common.js

(29.0K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/datatable.js

(4.0K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/calendar.js

(2.4K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/date.js

(7.2K)  http://127.0.0.1/Piwik-Dev/libs/jquery/ui.sortable_modif.js

(4.7K)  http://127.0.0.1/Piwik-Dev/libs/jquery/superfish_modified.js

(2.4K)  http://127.0.0.1/Piwik-Dev/plugins/Home/templates/menu.js

(7.1K)  http://127.0.0.1/Piwik-Dev/piwik.js

11. Avoid redirects - Grade:A

12. Remove duplicate scripts - Grade:A

13. Configure ETags - Grade:F

Overall Grade F(40)

MoreInformation at: Best Practices for Speeding Up Your Web Site

Changed 4 years ago by Christian

My ideas for improvements

Point 1: I think it is not useful to merge the JS and CSS files to two big files, because the readability of the code decreases and it becomes more difficult to understand the code.

Point 2: Negligible at the current state

Point 3,4: Can only be achieved by server configuration

Point 10: I think we should a least create minified versions of our own js-files. Any suggestions for a good js minifier?

Point 13: Can only be achieved by the server configuration

Changed 4 years ago by matt

  • status changed from new to closed
  • resolution set to wontfix

The only point seems to be point 10. At this stage, but such a thing has to be done at build time, or in a post commit hook. We could open a ticket for this if we decide to implement it.

At the current stage, I suggest there is not much we can do that Yslow! advises us.

Thanks Christian for the analysis :)

Changed 4 years ago by Volker E.

  • status changed from closed to reopened
  • resolution wontfix deleted

I've already mentioned this in an email to the core developer team, but may a customized  PHP Speedy be a solution to points 1 + 10? Without loosing readability…

Changed 4 years ago by matt

  • milestone changed from RobotRock to Stable release

Changed 3 years ago by matt

  • status changed from reopened to closed
  • resolution set to fixed

ticket done. Created #533 to followup our findings

Changed 3 years ago by alivenk

Note: See TracTickets for help on using tickets.