Login Register

Part-4-meta-dojo

Getting the Code from Source Control

The Dojo team uses Subversion for source control. Those familiar with CVS will find the command line syntax for subversion to be very similar. Regardless, the following instructions are geared to those not familiar with CVS, or even source control in general.

Authoritative documentation on Subversion is available here.

D.O.H. Unit Testing

Basic JavaScript Gotchas

Developing AJAX based applications, whether you use the Dojo Toolkit or develop everything the hard way from scratch, can pose quite a challenge to most developers. The difficulties typically arise from two main issues:

  • JavaScript(TM) is an interpreted language and is not compiled into machine code. Therefore, you do not have a compiler to catch common syntax errors.

Performance Optimization

So you've built an application using Dojo and it "feels slow". Now what? Unfortunately, you can't send the latest Dual Core processors to your users But fortunately, experience has taught us that in JavaScript, smaller = faster, no matter what the client. So basically, you want to concentrate on the size of your pages. The smaller they are, the less time it takes to download, parse and execute them.

The Package System and Custom Builds

A Dojo custom build speeds performance by doing the following:

Profiling

Performance problems are bugs too, and Dojo has built-in facilities for identifying slow-running code segments. Some JavaScript debuggers like Firebug give file-loading performance, but often you need information at the code level.

You can cheaply calculate function execution time by taking the difference between two JavaScript dates. It's not a great technique, because you have to make educated guesses as to where the inefficient areas are, and it may take quite a lot of work to home in on the problem area. But it is easy to do if you are measuring a single function:

Traffic Analyzers

Many problems can be resolved by watching the traffic between the browser and the server. While IDE's and web add-ons analyze traffic, the following standalone programs are more heavy-duty. If you are having any problems with XHR or with js/html/css/jpg files not loading as you would expect, this is often the best way to diagnose them quickly. Also if you are having problems with required files not loading then this is a good starting point to find out why.

Browser Addons

Mozilla/Firefox

Integrated Development Environments

At the high end of the spectrum, Integrated Development Environments, or IDEs support a wide range of web development activity, including editing JavaScript and HTML files, deploying code to servers, and integration with existing features like source control. In addition, some include runtime tools and browser integration to assist in debugging.

Cross-Platform, Eclipse-Based

  • Aptana - Extremely strong JavaScript support, good support for many common server-side languages, and integration for Dojo.

Development Tools

No matter what your development environment, several tools are indispensable when building client-side applications:

  • FireFox
  • FireBug is a web developer's best friend. Also see it's associated performance tuning plugin YSlow.
  • Virtualization software such as VMWare or Parallels can make your job significantly easier by allowing you to run multiple versions of IE side-by-side