views:

53

answers:

2

Stackoverflow members, How do you currently find the balance between javascript and code behind. I have recently come across some extremely bad (in my eyes) legacy code that lends itself to chaos (someHugeJavafile.js) which contains a lot of the logic used in many of the pages.

Let's say for example that you have a Form that you need to complete. 1. Personal Details 2. Address Information 3. Little bit more about yourself

You don't want to overload the person with all the fields at once, so you decide to split it up into steps.

  1. Do you create separate pages for Personal Details, Address Information and a Little bit more about yourself.
  2. Do you create controls for each and hide and show them on a postback or using some update panel?
  3. Do you use jQuery and do some checking to ensure that the person has completed the required fields for the step and show the new "section" by using .show()?

How do you usually find the balance?

A: 

Balance is in the eye of the beholder, and every project is different.

Consider outlining general themes for your project. For example: "We're going to do all form validation client-side." or "We're going to have a 0 refresh policy, meaning all forms will submit via AJAX." etc.

Having themes helps answers questions like the one you posted and keeps future developers looking in the right places for the right code.

When in doubt, try to see your code through the eyes of someone who has never seen it before (or as is often the case, yourself 2 to 3 years down the road), and ask yourself: "Based on the rest of the code, where would i look for this function?"

Personally, I like option number 3, but that's just because it fits best with the project I'm currently working on and I have no need to postback or create additional pages.

Jon Weers
+1  A: 

First of all, let's step back on this for a moment:

  1. Is there a CMS behind the site that should be considered when creating this form? Many sites will use some system for managing content and this shouldn't be forgotten or ignored at first glance to my mind.

  2. Is there a reason for having 3 separate parts to the form? I may set up a Wizard control to go through each step but this is presuming that the same outline would work and that the trade-offs in using this are OK. If not, controls would be the next logical size as I don't think a complete page is worth adopting here.

  3. While Javscript validation is a good idea, there may be some browsers with JavaScript disabled that should be considered here. Should this be supported? Warned about the form needing Javascript to be supported?

JB King