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.


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

Best regards,


On Nov 29, 2007 10:21 PM, Eric Lease Morgan <[EMAIL PROTECTED]> 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:

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 ( );


   }; '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
rochkind (at)

Reply via email to