Print

Print


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