JavaScript

Introduction

JavaScript, as you will know if you have done any web development, is a client-side scripting language that enables some of the clever desktop-like behavior you can experience on various web sites today. Of course, AJAX plays an important part in this as well.

Getting Started

Tips and Tricks

jQuery

This popular library deserves its own section.

Libraries

  • Google AJAX Libraries API - Serves up many of the popular libraries listed below. It is worth mentioning here because you can potentially speed up the loading of various JavaScript libraries from the Google server instead of hosting them on your own. More details here.
  • Prototype - Adds AJAX support for dynamic communication between browser and application. Here are some handy libraries built on top of Prototype: Starbox, Lightbox, Prototip, Proto.Menu, and ProtoChart.
  • script.aculo.us - Provides a cross-browser, user-interface for your web applications. Sits nicely on top of Prototype.
  • jQuery - A fast library that enables easy traversal of the HTML elements, animation support, AJAX, error handling, and has lots of useful plugins. Check out Visual jQuery to get, yes, a more visual experience of jQuery API or you can start learning jQuery now. Here are some additional libraries built on top of jQuery worth checking out: moreSelectors, Anti-aliased Rounded Corners, Lightbox, Chain, tablesorter, Form, Validation, timeago, Flexigrid, Table Drag and Drop, ScrollTo, LocalScroll, SerialScroll, Flot, Image Preloader, jTPS, JX, jsTree, timepickr, and jParallax.
  • Yahoo! User Interface Library (YUI) - Another JavaScript library that is a collection of utilities and controls for building robust web interfaces.
  • Ext JS - Originating from the Yahoo! User Interface (YUI) library, Ext JS is a library that can be used to bring a lot of interesting UI behavior to your web application.
  • Dojo - A library that has I/O, widget, GUI, testing, and animated transitions amongst other things.
  • MooTools - A cross-browser and compact JavaScript framework with plug-in support. Check out the following plug-ins: JxLib.
  • Jester - A JavaScript client that supports REST API and also uses Ruby on Rails coding conventions.
  • LiveValidation - A library for client-side validation of text as it is typed.
  • Date JS - A library for dealing with date and time.
  • Timeframe - Built on top of Date JS, it allows you to select date ranges.
  • SoundManager 2 - Wraps and extends the sound capabilities of Flash.
  • PersistJS - A client-side, cross-browser persistent storage solution that does not use cookies.
  • Coverflow - A library for presenting coverflow-like effects.
  • Sphere - Turn images into three dimensional images.
  • Bluff - Create beautiful graphs. Ported for use by Ruby developers.
  • Typeface - Allows you to load custom fonts without having to render to image like sIFR. It is in its infancy and has issues still.
  • WSIHat - A what-you-see-is-what-you-get JavaScript editor. More specifically it is the foundation from which you can apply your own UI to.
  • JS.IO - A I/O library for network communication.
  • Pi - Designed for JavaScript programmers develop applications with reduction in browser differences.
  • jslibs - “A standalone JavaScript development runtime environment for using JavaScript as a general-purpose scripting language.”
  • Blackbird - Makes logging message to the console easy. Comes with a slick looking console as well.
  • Busy.js - Easily add/remove status indicators on a page.

Oh, and here is a list of some great JavaScript and CSS menu libraries.

Tools

  • Line-Height - A tool that helps you determine line-height for various fonts (since each font has it’s own calculation).

Testing

Performance

  • SunSpider - A JavaScript performance test engine developed by the WebKit team.
  • V8 Benchmark - A performance test engine developed by the Google team.
  • Dromaeo - A performance test engine developed by the Mozilla team.