Print

Print


In what context is the code running?  I haven't used jquery, so I can't give exact syntax, but other similar libraries have ways of attaching functions to events like "load" or "domready."  If your theory about the code running too quickly is correct, it might just be a matter of deferring execution until the document is loaded and ready to be manipulated.

Also, a general tip -- if you haven't already, you might find it worthwhile to test your code in a variety of different browsers.  With weird timing bugs, you'll sometimes see distinctly different failures in different browsers and get different types of feedback.  It's often helpful to compare these varying results in order to track down the cause.

- Demian
________________________________________
From: Code for Libraries [[log in to unmask]] On Behalf Of Michael Beccaria [[log in to unmask]]
Sent: Wednesday, November 04, 2009 9:18 PM
To: [log in to unmask]
Subject: [CODE4LIB] Jquery jsonp question

Hey all,
I'm having some problems with some ajaxy stuff and was hoping someone
can point me in the right direction.

The project is as follows:
I'm trying to take this page
(http://lg8eg4nk4x.search.serialssolutions.com/?S=T_W_A&V=1.0&N=100&L=LG
8EG4NK4X&C=test) and grab the issn and query my server which returns
whether the issn is peer reviewed or not.

I'm using jquery. Here is the piece of my js code that cycles through
the issn numbers:
if (allHTMLTags[i].className==theClass) {
                        var originalTag = allHTMLTags[i].innerHTML;
                        var issn =
originalTag.replace("(","").replace(")","");
                        alert('test');

$.getJSON("http://library.paulsmiths.edu/issnsearch/ispeerreviewed.php?i
ssn=" + issn + "&jsoncallback=?",function(json, textStatus) {
                                alert("test2");
                                allHTMLTags[i].innerHTML= "(" + issn +
") Peer Reviewed: " + json.peerreviewed;
                        });
                }
        }
}

The problem is if I remove the "alert" items that print out "test and
"test2", the program cycles indefinitely, hits my server a million
times, and freezes my browser. With the alerts, it works as expected. I
suspect the script is running too fast and is unable to get a response
from the $.getJSON query in time before it hits the innerHTML command.
How is this usually handled in ajax stuff? I'm new to it all.
Thanks,

Mike Beccaria
Systems Librarian
Head of Digital Initiatives
Paul Smith's College
518.327.6376