These days I think jquery seems more generally popular than prototype.
But both are options. I definitely would use one or the other, instead
of doing it myself from scratch. They take care of a lot of weird
cross-browser-compatibility stuff, among other conveniences.
Jonathan
Jesse Prabawa wrote:
> Hi Eric,
>
> Have you considered using a Javascript Library to handle these details? I
> would recommend that you refactor your code to use one so that you can
> concentrate on what you actually want to do instead. This way you can also
> avoid having browser incompatabilities that are already solved if you use a
> Javascript Library. Try checking out Prototype at
> http://www.prototypejs.org/
>
> Best regards,
>
> Jesse
>
> On Nov 29, 2007 10:21 PM, Eric Lease Morgan <[log in to unmask]> wrote:
>
>
>> Why doesn't my httpRequest Javascript function return unless I add an
>> alert? Grrr.
>>
>> I am writing my first AJAX-y function called add_tag. This is how it
>> is suppose to work:
>>
>> 1. define a username
>> 2. create an httpRequest object
>> 3. define what it is suppose to happen when it gets a response
>> 4. open a connection to the server
>> 5. send the request
>>
>> When the response it is complete is simply echos the username. I know
>> the remote CGI script works because the following URL works correctly:
>>
>> http://mylibrary.library.nd.edu/demos/tagging/?
>> cmd=add_tag&username=fkilgour
>>
>> My Javascript is below, and it works IF I retain the "alert
>> ( 'Grrr!' )" line. Once I take the alert out of the picture I get a
>> Javascript error "xmldoc has no properties". Here's my code:
>>
>>
>> function add_tag() {
>>
>> // define username
>> var username = 'fkilgour';
>>
>> // create an httpRequest
>> var httpRequest;
>> if ( window.XMLHttpRequest ) { httpRequest = new XMLHttpRequest(); }
>> else if ( window.ActiveXObject ) { httpRequest = new ActiveXObject
>> ( "Microsoft.XMLHTTP" ); }
>>
>> // give the httpRequest some characteristics and send it off
>> httpRequest.onreadystatechange = function() {
>>
>> if ( httpRequest.readyState == 4 ) {
>>
>> var xmldoc = httpRequest.responseXML;
>> var root_node = xmldoc.getElementsByTagName( 'root' ).item( 0 );
>> alert ( root_node.firstChild.data );
>>
>> }
>>
>> };
>>
>> httpRequest.open( 'GET', './index.cgi?cmd=add_tag&username=' +
>> username, true );
>> httpRequest.send( '' );
>> alert ( 'Grrr!' );
>>
>> }
>>
>>
>> What am I doing wrong? Why do I seem to need a pause at the end of my
>> add_tag function? I know the anonymous function -- function() -- is
>> getting executed because I can insert other httpRequest.readyState
>> checks into the function and they return. Grrr.
>>
>> --
>> Eric Lease Morgan
>> University Libraries of Notre Dame
>>
>> (574) 631-8604
>>
>>
>
>
--
Jonathan Rochkind
Digital Services Software Engineer
The Sheridan Libraries
Johns Hopkins University
410.516.8886
rochkind (at) jhu.edu
|