High Performance JavaScript Conference 2010 in San Francisco Bay Area
Table of Contents
- 1. Summary
- 2. Tasks
- 2.1. Etherpad (CMO intall) tools
- 2.2. YSlow! Beautified JavaScript (WebDev ) debugging
- 2.3. FireQuery performance
- 2.4. detach() to ensure that event handlers performance
- 2.5. Audit for repeat use DOM selecctors performance
- 2.6. Create a progressive enhancement prototype with movie player performance
- 2.7. Audit site for failure to use DOM fragments performance
- 2.8. Upgrade to 1.4.2 to simplify detach() and remove() performance
- 2.9. Get slideshare for performance
- 2.10. Review labjs
- 2.11. Define a core Classmates platform
- 2.12. Set a CDN reviewer
- 3. Sessions
- 3.1. Welcome and Introduction Apr. 24 2010, 10:00 AM
- 3.2. Ads, widgets, and analytics - Oh my! Apr. 24 2010, 11:00 AM
- 3.2.1. Google webmaster tools tools
- 3.2.2. YSlow! tools
- 3.2.3. Page Speed tools
- 3.2.4. TODO Sergie performance for YSlow
- 3.2.5. webPagetest tools
- 3.2.6. More than half of a site can now be third party content
- 3.2.7. appendChild () vs. insertBefore()
- 3.2.8. Forced sequential
- 3.2.9. Frag Tag
- 3.2.10. Browser Disk cache
- 3.2.11. Lack of progressive rendering
- 3.2.12. Be most concerned with JavaScript
- 3.2.13. Split the JavaScript
- 3.2.14. Performance Redesigns
- 3.2.15. All JavaScript Beutified
- 3.2.16. Browers Scope for Usability Testing
- 3.2.17. What are the performance impacts from Facebook Widgets
- 3.2.18. Tasks
- 3.3. High Performance jQuery Apr. 24 2010, 12:00 PM
- 3.3.1. Look at the initial object container for the plugin that needs to be applied against the page
- 3.3.2. What is the profiling and timing for the plugin
- 3.3.3. When does jQuery do more than we need
- 3.3.4. When are we not cleaning up the work
- 3.3.5. CSS vs. .show() & hide() css
- 3.3.6. .each() vs. for
- 3.3.7. Cache the DOM selectors for common items todo
- 3.3.8. Structure
- 3.4. The Microsoft & jQuery Story and the New Templating Plugin Apr. 24 2010, 1:45 PM
- 3.5. Alternative: High Performance JavaScript
- 3.5.1. Audit reflow activity
- 3.5.2. Trace all reflows
- 3.5.3. Don't do offset calculations
- 3.5.4. If you need offset calculations do them early
- 3.5.5. Use DOMFramement rather than in DOM manipulations
- 3.5.6. Consider using detact() before working on the DOM
- 3.5.7. Deeper the prototype chain the more expensive the lookup
- 3.5.8. Deeper the scope chain the more expensive the lookup
- 3.5.9. Create clean presentation process
- 3.5.10. Split intensive looks with setTimeOut(myFuncFrag, 50)
- 3.6. How To Manage Large Applications with jQuery Apr. 24 2010, 3:00 PM
- 3.7. Alternative: Learning From the Best jQuery Plugins
- 3.8. Object Oriented jQuery with MooTools Apr. 24 2010, 3:45 PM
- 3.8.1. $(document).ready balloons
- 3.8.2. Can't reuse
- 3.8.3. Need to have stateful objects
- 3.8.4.
- 3.8.5. Quickly switch background: command + option + control + 8
- 3.8.6. Use mootools for core object function
- 3.8.7. Extends: Would need to find out what the prototype exists for "Class"
- 3.8.8. Extends: How to implement static variables
- 3.8.9. How much of this would need to be rolled with subclass deletes
- 3.8.10. Other OO practices
- 3.9. jQuery UI Fundamentals Apr. 24 2010, 4:30 PM
- 3.10. Special Events: Beyond Custom Events Apr. 24 2010, 5:15 PM
- 3.11. Automated UI testing with jQuery Apr. 25 2010, 10:00 AM
- 3.12. jQuery UI Widget Factory Apr. 25 2010, 11:00 AM
- 3.13. Designing Interactions with jQuery Apr. 25 2010, 11:45 AM
- 3.14. Inside ThemeRoller 2.0: Refactoring for Speed Apr. 25 2010, 1:15 PM
- 3.15. Fast, modular code with jQuery and RequireJS Apr. 25 2010, 2:00 PM
- 3.16. Organizing Your Code with Testable jQuery Plugins Apr. 25 2010, 2:45 PM
- 3.17. Building a game engine with jQuery Apr. 25 2010, 3:30 PM
- 4. FireQuery
- 5. FireQuery provides plugin support for jQuery Lint
- 6. YSlow! shows All JS Beautified
- 7. Aggregation of YSlow! and Page Speed reports
- 8. WebPagetest now shows rendering time video
1. Summary
http://events.jquery.org/2010/sf-bay-area/ http://speakerrate.com/events/365-jquery-conference-2010-san-francisco-bay-area
The San Francisco Bay Area conference will be held at the Microsoft Silicon Valley Campus Conference Center in Mountain View, California
2. Tasks
2.2. YSlow! Beautified JavaScript (WebDev ) debugging
Beautified JavaScript for: http://wal.sh/
- http://www.google-analytics.com/ga.js
- http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
- http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js
- http://wal.sh/static/default.js
- http://connect.facebook.net/en_US/all.js
- http://static.ak.fbcdn.net/rsrc.php/z49PH/hash/9p47jvzp.js
- inline script block #1
- inline script block #2
- inline script block #3
2.10. Review labjs
3. Sessions
3.1. Welcome and Introduction Apr. 24 2010, 10:00 AM
Over 500 People; largest JavaScript conference.
People at table from American Apparel; jQuery 1.4.2 with Dynamo.
3.2. Ads, widgets, and analytics - Oh my! Apr. 24 2010, 11:00 AM
http://speakerrate.com/talks/2962-ads-widgets-and-analytics-oh-my
Site speed in search algorithm.
Do large companies have an easier time to enhance performance.
Regression time, many teams build the components for the page, risk assessment.
Tools recommended are:
3.2.1. Google webmaster tools tools
3.2.2. YSlow! tools
Better with sprites.
3.2.3. Page Speed tools
Better with deprecated styles.
3.2.5. webPagetest tools
Show a video of the comparison between the load of the systems.
This is similar to
http://code.google.com/speed/page-speed/docs/using.html#activities
3.2.7. appendChild () vs. insertBefore()
For async script loading.
Interesting change in the load behavior for Google Analytics. Also look at YUI loader's implementation for how to add scripts
getHardpoint() is used by ??? (Fabebook)
3.2.8. Forced sequential
document.write to perform the sequential loads and redirectors.
Ad network and inventory.
This won't be solved without involvement from the Ad network. The business requirements would need to be reviewed to determine how those businesses are run.
Facebook has the benefit running internally.
3.2.9. Frag Tag
3.2.10. Browser Disk cache
3.2.11. Lack of progressive rendering
What is the amount of rendring provided during the load of the page.
3.2.12. Be most concerned with JavaScript
It blocks; look at the parallel options.
3.2.13. Split the JavaScript
3.2.15. All JavaScript Beutified
3.3. High Performance jQuery Apr. 24 2010, 12:00 PM
http://speakerrate.com/talks/2964-high-performance-jquery http://uk.linkedin.com/pub/robert-duffy/3/315/247
Another origin; review of client technologies.
3.3.1. Look at the initial object container for the plugin that needs to be applied against the page
3.3.3. When does jQuery do more than we need
Cases where binding accumulates on objects.
3.3.4. When are we not cleaning up the work
Example was for DOM elements that are no longer being used.
3.3.5. CSS vs. .show() & hide() css
Is this always the case that we don't want to use show() and hide().
Why is show and hide so expensive?
3.3.6. .each() vs. for
3.5. Alternative: High Performance JavaScript
3.5.1. Audit reflow activity
3.5.2. Trace all reflows
3.5.3. Don't do offset calculations
3.5.9. Create clean presentation process
3.5.9.1. Simple, humorous introduction
3.5.9.2. Walk the points
3.5.9.3. Repeat all core points
3.7. Alternative: Learning From the Best jQuery Plugins
http://speakerrate.com/talks/2968-learning-from-the-best-jquery-plugins http://marcgrabanski.com/
Reviewed over 1000 plugins.
Tried to review items recommended online and Twitter.
3.7.1. Examples
3.7.1.1. BBQ
3.7.1.2. ColorBox
Provides a fair number of poptions.
3.7.1.3. DatePicker
3.7.1.4. Flip!
3.7.1.5. Form
Notes that the key feature is AJAX file upload.
3.7.1.6. Flot
3.7.1.7. jCarousel
3.7.1.8. NoSWFUpload
3.7.1.9. Uploadify
3.7.1.10. Validation
3.7.1.11. Tooltip
3.7.1.12. Accordian
3.7.1.13. SWFObject
3.7.2. Best Practices
3.7.2.1. Make demos available
Make a huge list of demos available to show how all functionality is available .
3.7.2.2. Make sure the options are available
3.8. Object Oriented jQuery with MooTools Apr. 24 2010, 3:45 PM
3.8.1. $(document).ready balloons
3.8.2. Can't reuse
3.8.6. Use mootools for core object function
Need to have something like the review against the best practices.
Theis creates the constructors nand the instanaces that are needed. The consturctor tfor this seems ood.
The only thing in mootools core only have class functionality.
6. YSlow! shows All JS Beautified
It didn't look like many people in the audience were aware of this new new that should move the manual process of something like
js beautify-cl.js http://s.cmcdn.com/graphics/js/lib/generic.js
Firebug > YSlow > Tools > All JS Beautified Show all JavaScript code in this document in an easy to read format
7. Aggregation of YSlow! and Page Speed reports
http://www.sergeychernyshev.com/blog/automating-page-speed-and-yslow-monitoring/
I'm still working on the implementation of ShowSlow against prototype02 but as a temporary aggregation I'm using the following user set properties in about:config in Firefox:
extensions.PageSpeed.beacon.full_results.url;http://jwalsh.corp.sea1.cmates.com/rx extensions.PageSpeed.beacon.minimal.url;http://jwalsh.corp.sea1.cmates.com/rx extensions.yslow.beaconUrl;http://jwalsh.corp.sea1.cmates.com/rx extensions.yslow.optinBeacon;true
Configuration is noted in
http://developer.yahoo.com/yslow/help/beacons.html
Alternatives:
24mar2009.xls
This mirrors some of the work done for web page http://xfiles/display/area51/PagetestPlugin
8. WebPagetest now shows rendering time video
The public version of page http://sourceforge.net/apps/mediawiki/pagetest/index.php?title=Main_Page