Difference between revisions of "JavaScript Working Group"

From Joomla! Documentation

Line 32: Line 32:
  
 
==Deliverables==
 
==Deliverables==
 +
Loads of beautiful JavaScript!
  
 
==Technical Work produced by this group==
 
==Technical Work produced by this group==

Revision as of 20:12, 26 May 2012

The JavaScript Working Group is a Production Working Group. It is responsible for establishing standards for JavaScript and seeing that the JavaScript and/or JS frameworks are integrated and maintained.

Coordinators & PLT Contact[edit]

  • The coordinator for this working group is Joe LeBlanc.
  • The PLT Contact for this working group is Andy Tarr.

Announcements[edit]

External resources[edit]

Code Quality / Utilities[edit]

Libraries[edit]

Deliverables[edit]

Loads of beautiful JavaScript!

Technical Work produced by this group[edit]

Communications[edit]

Primary communication will occur on the Joomla CMS Development list. The JUX site will also be used for specific tasking and discussion.

Roadmap[edit]

Ultimate Goal[edit]

Make Joomla an enjoyable and preferable tool for JavaScript programmers to use.

Intermediate Goals[edit]

  • Come up with JavaScript coding standards for the Joomla project, based on existing ones
  • Integrate jQuery with noConflict mode enabled by default
  • Replace frontend MooTools dependencies with jQuery code
  • Add JavaScript library management and CDNs
  • Replace code that interpolates JavaScript and PHP
  • Unit test JavaScript in Joomla

Meetings[edit]

J! and Beyond 2012[edit]

Managing jQuery noConflict, potential solutions:[edit]

  • add at the end of jQuery javascript file
  • load no_conflict.js
  • patch submitted by Beat: pre/post JavaScript

Miscellaneous[edit]

  • clean up library manager plugin
  • JSLint - add to the unit tests
  • JavaScript compression
  • Stop writing JavaScript in PHP!
  • Idea: module parameters for adding CSS and JavaScript (rather than adding it in the HTML body)
  • Ordering: Ability to add a declaration before or after

Caching[edit]

  • Browser Caching - ?#342384623749873 <--- cache bust
  • Joomla Caching - addScriptDeclaration: doesn't cache properly.
  • Different behavior in modules vs. components

Where to load JavaScript?[edit]

  • Add JavaScript at the END of the document.
  • OR: use defer for asynchronous loading.

Possibility: add code on the client side to detect whether libraries are loaded.[edit]

  • Would need to document
  • Or: Joomla.library('nameoflibrary', '1.0', 'libraryurl');
  • Just use Require.js (or don't, it's madness, has ordering issues because it's asynchronous)
  • Just use the plugin Joe authored. Or the patch Beat submitted.

Stop[edit]

  • writing inline JavaScript! (causes "flashes") (although Geraint disagrees (and so does Peter (and Danielle)))
  • Don't code onClick events directly into markup! Use stopPropagation.
  • Geraint brings up a good point: maybe you need to do something before DOMready... but it's on the level of eval()

MooTools[edit]

  • Optimize: We're currently loading everything.
  • As long as we're still using it, use it modularly, the way it was intended.
  • Might have to be done server side.
  • Look at LABjs.

Follow up[edit]

  • Start a GitHub branch
  • Start a Google Group - or do it on the CMS list.
  • Sort out 2.5 issues from 3.0 features
  • Look at replacing frontend MooTools
  • Get email addresses