Brian, I mean you no disrepect, but I'm not sure I like this idea for a few
reasons. You'll have to do a much better job of convincing me.

Best practices suggest that AJAX should be cacheable; however dynamic
lookups from the server aren't cacheable. We are looking to move towards
AJAX at some point, but we have not yet decided on what, if any, framework
will work best for us. Using script.aculo.us & Prototype.js for this one
feature seems very much overkill.

About 10% of of our web users are still on dial-up. Adding another 136kb
download for the Prototype.js file and still more kb for the
script.aculo.usfiles will further slow things down for these users.
The idea is to make
things (seem) faster, not make our pages load even slower.

I'd be more tempted to break the list into separate lists for each province
and use AJAX to load the file that has only the list of cities in that
province. But even for this approach, the script(s) may laod after the form
is rendered, so a strategy must be taken to handle changes to the form
before the script(s) have a chance to load, which is what I was aksing
about.

Lastly, our server loads are getting higher on our machine as we get more
participation. Our emphasis on speed this year has actualy encouraged more
people to participate; therefore more people are using our server.  We've
already added load balancing Witango servers to handle the increases in
load, and we are monitoring continuing to monitor the situation closely.
Asking the Witango servers to also handle AJAX queries would only add to the
load that the Witango/DBMS server already has, and _could_ erode the many
gains we've already made. I'd prefer to offload the duty off the Witango
server as much as possible unless there's very high usuability gains. The
autocompleter seems more like a nice to have than a must have as the users
can already type the first few characters of the city's name to find the
city when the focus is on the city pulldown. Standard form elements work
better, especially in microbrowsers and browsers without JavaScript. It not
clear how this would work in a non-JavaScript browser.



On 11/10/09, Brian Humes <bhu...@johnson-rauhoff.com> wrote:
>
> Hi Anthony,
>
> Another option would be to use an autocompleter. Make the city field a text
> input, but as the user starts typing a little list of possible entries
> appears below the text input. The user can either mouse click on one or use
> arrow keys to select one. The list of possible entries is pulled dynamically
> using ajax.
>
> I've used this one from scriptaculous. Works great. All of the instructions
> are here:
>
> http://wiki.github.com/madrobby/scriptaculous/ajax-autocompleter
>
> Hope this helps.
>
>
> Brian Humes
> Director, Interactive
> JohnsonRauhoff
> 269-428-9257 (direct)
> 269-428-3377 (main)
> 269-428-3312 (fax)
> www.johnson-rauhoff.com
> bhu...@johnson-rauhoff.com
>
>
>
>
>
> On Nov 10, 2009, at 11:20 AM, Anthony Humphreys wrote:
>
> Hi all,
>>
>> We had a problem where people were putting in inaccurate information for
>> the "city."
>> We solved that problem by using some javascript and limiting the choice of
>> cities by using a pull-down.  The list of cities is limited by the choice of
>> province.
>>
>> This introduced a new problem, the page took a very long time to load as
>> the sript and array of cities was being loaded by the browser.
>> We solved this by moving the JS script and the JS city array (city list)
>> into an external JS file which is loaded after the form is pushed to the
>> browser. Now the form sppears to load very quickly, as the script/array
>> loads after the browser has already rendered the form.
>>
>> However, this introduces a new problem: the form can changed by the user
>> before all the scripts/arrays have loaded.
>>
>> I seem to have a few options avaialable to me to solve this, but I was
>> wondering how you have solved this dilemma.
>>
>> Option One: Disable the province/city pulldowns until the all the
>> scripts/arrays load.
>> Option two: Only populate the province pulldown with the current province;
>> load the rest of the provinces with the whole province list only when all
>> the scripts/arrays are loaded
>> Option three: Save the initial state of the pulldowns; once all of the
>> script/arrays are loaded compare the intial state against the current state
>> of the form and make the appropriate updates.
>> Other options: Other strategies you have used but that I've not listed.
>>
>> Thanks!
>>
>> Anthony -
>>
>>
>> ________________________________________________________________________
>> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
>>
>
> ________________________________________________________________________
> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
>
>

________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf

Reply via email to