Skip to main content

My first problem with AJAX

I was using Callback (AJAX) to retrieve a page i had developed .
Lets start all over,
I was using AJAX to retrieve a part of the contents of a web page. Cool, simple, it downloaded without a pain, then I innerHTMLed it to a span tag. Worked fine, successful, clapped my hands etc.etc.

Clicked on the button which had seemed to appear out of nowhere.
And then, it all fell apart.
The feared exclamatory symbol appeared on the status bar.... And for the newbies, thats an indication of a JavaScript error in IE.
Of course, as usual i was all curses at my IE window......Anyway to make a long story short (i AM quite sleepy u know). the scripts which i seemed to be innerHTMLing to the span tag are not executed. And what i mean is anything between the script tags which have been innerHTMLed to that span tag are not executed.

Of course i can see a ray of hope in the distance. I mean the distance till tomorrow morning.


And just for kicks, check out a hi-fundoo flash file titled EPIC 2004 .
And for all the Indians out there, Check out Param Padma. 1 TeraFlop/second.
For the non-indians of course there is Earth Simulator, Japan's 40-Teraflop/second.

Comments

Rakesh Pai said…
I wonder if you fixed this problem. It would be nice to share your solution with us.

If you haven't solved it yet, the problem might be your markup's doctype, if you are serving as XHTML. You can't innerHTML text into a XHTML document. In fact, the XHTML DOM doesn't have an innerHTML function at all!

Instead, you should use the DOM methods (like createElement) to create the markup you need.

It's logical, if you think about it. If you innerHTML text into a XHTML document, you might break the XML structure of the document. Using the DOM functions, you can never break the XML structure.

Of course, all of this is not a problem if you are using HTML. HTML is not valid XML anyway!

By the way, if you are using XHTML, don't use IE! IE doesn't even support XHTML. It thinks it is HTML and proceeds to render it like any HTML page. Not usually a problem, but you don't really have any of the benefits of XHTML that way, and you would never know (unless you validate) if your markup is ill-formed.

Actually, just stop using IE anyway. Get Firefox! And one you have the JS-related extensions installed, you'll see how easy it is to develop client-side code. :)
Rakesh Pai said…
Disregard everything I said. It was said in one of those moments of utter stupidity. It is stupid, because:

1. Since IE renders XHTML as HTML, innerHTML is supported with any document type anyway.
2. Most recent versions of Firefox have support for innerHTML with XHTML documents, provided the string you are adding is a valid XML snippet.
Sachin Nayak said…
Disregarded, etc.etc. Anyway I think i may have stumbled on a solution. I am retrieving srcipts using AJAX, looping thru them using getElementsByTagName(as i have tags other than script tags). eval'ing the contents of all script tags which have no src attribute. If they have a src attribute, a new script element uis created, and added appropriately. This seemed to work for the samples i had tried for. I do need to check with the real code.
Sachin Nayak said…
This comment has been removed by a blog administrator.

Popular posts from this blog

Imagine...an internet based world

Was reading "The Google Story", when i got this wierd idea. Consider a stripped down version of Linux, meant only for doing simple things such as browsing the internet, to read from the various drives (which is primarily meant only for storage of personal data), to play music and some single-player games. All the rest provided by the internet. Information searching/Chatting/Mailing/Documentation editing/journal maintenance/daily schedule maintenance/news/rss/shopping, etc. What else will you use for your computer for? Ok, actually i have been working on mainframes for some time now and am getting adjusted to the "dumb terminal" concept. Then i started associating the concept with scenario we are observing all over the net. As a matter of fact this will reduce the power of processing required on the client side also!!! Looks like the world is changing.... for the bettter, yup, i am sure. technorati tags: New internet age , dumb terminal , internet based world

Changing JAVA_HOME on a HDP 1.1 Hadoop on Windows Setup

We were setting up a small cluster of  Hadoop for some requirements, and decided to go with the HortonWorks release of Hadoop. ( HDP 1.1 for Windows ). After installing, we realized that for some reason the Oozie service was not starting up . (we tried both the CLI command provided with the HDP installation, as well as trying to manually start the service via services.msc). Looking through the log files (<HDP 1.1 installation path>\oozie-<version>\Service directory, specifically the oozieservice.out.log file) we found the error -    and so realized that Oozie server is dependent on JDK. It does not work with only JRE. To correct this we uninstalled JRE, and installed JDK. We also manually modified the JAVA_HOME environment variable to point to the new installation path. And then Oozie server started working all fine. But all the rest of the services (hadoop jobtracker, hadoop datanode etc.) stopped starting. Checking the logs of the services, we fou...