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

The fight is in the open

Been busy lately and so have not managed to post for quite long. But I just had to post this. This post is dedicated to all persons who dont know anything about the fight between MS and Google: Check out the links starting from: http://news.zdnet.com/2100-9588_22-5875433.html?tag=nl.e589 There are more links as you get thru the article. Be sure to read those too. And just as a side-note: Check out " Atlas ". These are client side and server side components, which easily (??) enable you to make Web calls. This is done by encapsulating AJAX. (please dont insult by telling me that you dont know what that is).

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

Attensa

Found a superb aggregator called Attensa . It's an MS Outlook attachement, and retrieves all my RSS feeds. Finally i dont need to go to blog lines any more. They referred to another site called Del.icio.us . This site is a primitive manner of storing you bookmarks online, tagging etc. Sounded interesting, need to play around lots more. As for Attensa. Serious suggestion... download it, if you have Outlook installed.