Share via


Analyzing Web 2.0 Applications with Ajax View

The information published in this post is now out-of-date and contains links which are no longer valid.

—IEBlog Editor, 18 August 2012

Hi everyone,

In June I posted information about a number of developer tools, one of which was Ajax View. Ajax View, developed by Microsoft Research, can help improve a developer's visibility into their web application’s performance and behavior. Recently, the researchers building Ajax View – Emre Kıcıman and Ben Livshits – released a public version of the tool (licensed for academic or other non-commercial use) so I want to share a link and provide a little more information about it.

What can I do with it?

As shown in the demo from MIX07 and described in detail here, you can use Ajax View to profile a site’s JavaScript from your dev machine. Ajax View includes a few default instrumentation policies for basic profiling (timing based on before and after a function call in the caller, timing based on before and after a function call in the callee, etc.) but you can create a plug-in to track the JavaScript you’re interested in. 

How does it work?

Ajax View is an HTTP proxy that instruments JavaScript as it’s served to the client based on a set of rules defined by plug-ins. The download includes a plug-in that contains a commented sample instrumentation policy. This design has a couple important effects:

  • You can customize Ajax View to monitor exactly the JavaScript behavior you’re looking for, whether it’s about performance, or how people navigate through your site.
  • Using Ajax View does not require modification of either the page source or the browser.

Where do I download it and send feedback?

Visit the Ajax View project siteto download the latest prototype and try it for yourself. 

We’d love to get your feedback on the kind of instrumentation you’d find useful. Let us know what data about your web application’s behavior would help you detect or debug problems. You can send feedback directly to the project team, or, as usual, comment on this post. 

Thanks! 

John Hrvatin
Program Manager
Internet Explorer

Edit: Updated link for "send feedback directly to the project team"

Comments

  • Anonymous
    August 23, 2007
    PingBack from http://msdnrss.thecoderblogs.com/2007/08/24/analyzing-web-20-applications-with-ajax-view/

  • Anonymous
    August 23, 2007
    "...released a public version of the tool (licensed for academic or other non-commercial use)". So webdevelopers like me can't use it? Way to go! BTW I can't read the licence (I use Word).

  • Anonymous
    August 23, 2007
    Not only is the licence aggreement corrupted but the email address ajaxview@microsoft.com that is on the site is not recognised by microsoft's mail server.

  • Anonymous
    August 23, 2007
    After discussion in last post about what Web developers REALLY need to see in this blog, IE team was offended and began to jeer at blog readers.

  • Anonymous
    August 24, 2007
    Seems like a good idea, but stops any pages from loading when I try it.  The proxy displays: [INFO] Got maps.live.com/ [1 active] and then thats it.  Nothing ever makes it back to the browser. Hard to test it when it doesn't even perform it's basic function of being a proxy.

  • Anonymous
    August 24, 2007
    Scott: I'm trying to figure out what happened to our feedback alias.  In the meanwhile, feel free to get in touch with us directly.  Send an email to both Ben and myself at emrek@microsoft.com and livshits@microsoft.com.   Thanks, Emre

  • Anonymous
    August 24, 2007
    I've fixed the problem with our feedback e-mail.  The changes should be replicated to our external SMTP servers and ajaxview@microsoft.com should start working within 24 hours.  Thanks for your patience. NJ: could you email Ben and myself some more details about your setup and what you're seeing?  We'd like to figure out why its not working for you.

  • Anonymous
    August 24, 2007
    So in order to do development in IE I need to pay for an addon? This shows 2 things. 1.) Development in IE is a pain. 2.) IE was not made, nor tailored for developers Way to "support" the community! oh and rc is right, thanks for posting about the public bug tracking system, we've been waiting for so long to hear something I'm so glad "you heard us"! oh wait, no you didn't, you plain bold face ignored us once again! Thanks

  • Anonymous
    August 24, 2007
    John and Emre--- Thanks for a cool new tool.   Please ignore the whining here. There are lots of non-webdevelopers who read this blog and are looking for info on betas and stuff and they don't care about web dev tools.

  • Anonymous
    August 24, 2007
    The comment has been removed

  • Anonymous
    August 24, 2007
    Max- Perhaps members of the ie team are not permited to talk to the community about their future plans?  non-ms people would not be subject to the same limitation.

  • Anonymous
    August 24, 2007
    @max Because engineers aren't good with people. They need a person who's good with people to address the public, then take that information to the engineers. Or have an administrative assistant physically carry the specs to the engineers. Either way.

  • Anonymous
    August 24, 2007
    The comment has been removed

  • Anonymous
    August 24, 2007
    The comment has been removed

  • Anonymous
    August 24, 2007
    This is very nifty and I like how it measures response times, I encountered some problems and had a work around (using this page for directions)... http://research.microsoft.com/projects/ajaxview/AjaxViewUsage-1.htm For some reason my IE6 keeps opening typed URLs in Firefox so I ran a standalone IE visiting the URL... http://localhost/?&AJAXVIEWREQUEST=GET=main.html It didn't work in Firefox however? I think this has more to do with the bug I have to put up with where inputing a URL manually opens in Firefox instead so I'm not blaming the software download here. "Why is it that only X-Members of the Microsoft IE Development Team have enough interest in communicating with the community?!?!" @ max Please ask yourself this, 'If I were part of the IE team would I want to post anything on this blog and what is the ratio of IE Team members to people asking questions/making requests?' The IE team is listening however I imagine they are wearing safety helmets when they come to post.

  • Anonymous
    August 25, 2007
    @argggghhhh: Yes, the issue with getElementByID is well known and understood.  Unfortunately, this is yet another of those "break the internet" style bugs.  If we change the default behavior of this function (named as it is or not) then thousands or millions of pages break.   Normal users don't care why web pages break in new browsers; they blame the new browser and uninstall it, taking with it all of the improvements that were made that ~didn't~ impact compatibility. Yes, I find this frustrating too.   No, I don't think we'll ever reach a point where compatibility doesn't matter.

  • Anonymous
    August 25, 2007
    The comment has been removed

  • Anonymous
    August 25, 2007
    ad: guess I should have tried the code before posting it. ;-) my sample should have done a 'deep' search, not just the root level. but the point stands. adding the ability to Prototype on elements will (A) not break anything, and (B) allow developers to fix pretty much every single JavaScript or DOM Bug in IE. My new #1 vote is for prototyping to be fixed in IE8!  :P

  • Anonymous
    August 25, 2007
    I am glad you guys are making tools, as I REALLY appreciate having the developer toolbar (most people use IE, therefore I develop in it to catch any obscure issues). It would be nice if the next IE release contains a way for the toolbar to provide information as to what the XMLHttpRequests are doing instead of going to the trouble of setting up a proxy (its easy, but I am lazy and Firebug does it through the console - which is nice). Off-topic: It would be nice to have some sort of method to call that makes IE use fixed versions of functions, if that is possible and would not hurt performance too much (preferably not at all). If you have considered that kind of thing before (I'm sure that has gone through your heads at some point) would you mind explaining your thoughts on that? Lastly, two things:

  • Any plans to fix that button artwork stretch problem and the un-removable margin for HR tags  (http://support.microsoft.com/kb/883631)?

  • Anonymous
    August 25, 2007
    The comment has been removed

  • Anonymous
    August 25, 2007
    The comment has been removed

  • Anonymous
    August 25, 2007
    Continuing on from my earlier comment about the proxy failing to operate I've managed to try it again on another clean system and this time it works fine. The original system I tried it on was sitting behind a Microsoft ISA server, but it does have the ISA proxy client software installed so the Ajax View proxy should work even if it does not implement proxy chaining. I'll keep playing with it, but I think it's probably the ISA server causing the problems.

  • Anonymous
    August 26, 2007
    @EricLaw: "Yes, the issue with getElementByID is well known and understood.  Unfortunately, this is yet another of those "break the internet" style bugs.  If we change the default behavior of this function (named as it is or not) then thousands or millions of pages break." The problem with these kind of statements is that I have yet to see data to back up these claims and quantify them. I just fail to see that there is no viable solution thinkable to these kind of problems. It's not about "breaking the web" but more about "fixing the web", we are after all talking about pages that are already broken to a large percentage of users (those not using IE) and you are still needlessly punishing authors who don't expect and cater for IE's behaviour (resulting in pages that are broken in IE).

  • Anonymous
    August 26, 2007
    The comment has been removed

  • Anonymous
    August 26, 2007
    Dave: I think you can agree that the current situation (having non-standard behaviour in IE and in IE only) is a situation that needs to be resolved rather sooner than later. I do agree that backwards compatibility is a necessity for MS - they will get the blame for breakages even when they are eventually "doing the right thing" by fixing things, but we really need to be able to put this in perspective. Besides, I think there is more than one way to adress these backwards compatibility problems. Introducing new opt-in switches imo should only be a last resort since it still punishes authors who are doing the right thing, and it puts a strain on other browser developers since they will probably need to mimic IE's behaviour which makes interoperability more difficult (I wrote about opt-in some time ago: http://therealcrisp.xs4all.nl/blog/2007/04/22/html5-microsoft-and-the-opt-in-catch/ ). I see several other solutions:

  • fix IE's DOM problems in standards compliant mode only and keep the non-standard behaviour in "quirksmode" (need to quantify if this significantly reduces the impact)
  • fix IE's DOM problems in the new really-really standards compliant mode MS deems necessary for HTML5
  • if it's mostly a problem with intranet applications: create the possibility to run multiple versions of IE alongside; companies can then continue to use e.g. IE6 or 7 for these applications while using IE8+ for internet access until the intranet application vendors have fixed their products (with the added advantage that it makes IE more developer-friendly). The one thing that is not clear to me is what constitutes "a lot of consideration". The only considerations that we are being told is the backwards compatibility consideration combined with the argument that it might break hundreds, thousands or even millions of sites. Without any actual data to back up this argument this remains guesswork and is therefor a non-argument. If however MS does have such information available it would be really helpfull if they would share that information, not only to prove that this issue really is of a major magnitude but also to provide valuable insight in the current state of the web which might affect and/or could be taken into consideration when drafting new specifications (such as HTML5).
  • Anonymous
    August 26, 2007
    The comment has been removed

  • Anonymous
    August 26, 2007
    The comment has been removed

  • Anonymous
    August 26, 2007
    Recently, MS made a public release of the Ajax view tool and I thought it's surely worth mentioning and

  • Anonymous
    August 27, 2007
    For Dave Massy and all developers on this thread about .getElementById( ID ) not following standards (and Eric, notice the 'd' on this method is lowercase). Since 90% of the issues here, are to do with JavaScript, just add an IE only method to (as anphanax put it) use the fixed versions of the functions. So, <script type="text/javascript">  if(window.external.followSpec){    //per page setting    window.external.followSpec( true );  } </script> With this, developers can decide for themselves, if they want to call the correct versions of methods, or the broken ones. Then, after 12 months, when it is painfully obvious that every developer on the planet is calling the fixed versions, there won't be any "we think this might, maybe, kind of, potentially break someones sandbox homepage" kind of garbage, and we can finally move on and just replace the old methods. Seriously though, is there anyone out that that expects .getElementById( ID ) to match on "name"? Seriously! Speak up if you are out there, Microsoft needs to know that this is not an issue, otherwise they won't fix this!

  • Anonymous
    August 27, 2007
    It's too bad that the license prohibits any use related to commercial use: "You may not use or distribute this Software or any derivative works in any form for commercial purposes. Examples of commercial purposes would be running business operations, licensing, leasing, or selling the Software, distributing the Software for use with commercial products, using the Software in the creation or use of commercial products or any other activity which purpose is to procure a commercial gain to you or others." The developers who care most about performance are those related to 'commercial purposes.' Oh well. It sounded interesting.

  • Anonymous
    August 28, 2007
    I'm having trouble sifting through the comments on this blog. Has getElementById() been fixed in IE8? Has createElement() been fixed in IE8? Has getElementByName() been fixed in IE8? Has setElement() been fixed in IE8? I don't care what the fix is, i.e. you need to set a doctype, use a CC, or set a JavaScript property. Looking forward to the update. Thanks

  • Anonymous
    August 28, 2007
    @rachel I have recently written that we won't see any news about new IE versions during next few years. You may trust me or not but let's remember this conversation, for instance, in 2010.

  • Anonymous
    August 28, 2007
    RC: On one hand, we've got you, some random dude on the internet who doesn't even use his real name, making a totally unfounded claim with zero information to back it up (and no sensible explanation of why it would even be possibly accurate).   On the other hand, we have the IE team, who has clearly stated that they're working on the next version of the browser, they're not ready to talk about it yet, but when they are, they'll do it here. I'm trusting the IE team on this one.

  • Anonymous
    August 29, 2007
    The comment has been removed

  • Anonymous
    August 29, 2007
    So, right after they say "We can't elaborate on details right now", they should elaborate on the specific details of what's being fixed?   Got it.  Very clever.

  • Anonymous
    August 29, 2007
    pfff please support the CSS2.1 (and yeah why not like the other browsers some CCS3.0 features) And what a stupid thing from microsoft. You should make a website and mail it to yourself and open it with outlook 2007 (it's been generated by word o_O ) padding doesn't work, float doesn't work, etc etc and what about visual studio: bad bad bad code it generates, same for frontpage. All good and well (I hope that IE will use the correct javascript and CSS syntax) but then some other ms products need to generate also correct/validating code! and I saw that video from MS for the internet explorer web developer bar... The code in that video looks TERRIBLE! they write/wrote everyting in caps like: BORDER-BOTTOM  LIST-STYLE-TYPE I'm really wondering if the coders from ms can make a real valid website using notepad :s I can do better i'm sure anyone has some big website to make some pressure on MS? you're welcome

  • Anonymous
    August 29, 2007
    pfff please support the CSS2.1 (and yeah why not like the other browsers some CCS3.0 features) And what a stupid thing from microsoft. You should make a website and mail it to yourself and open it with outlook 2007 (it's been generated by word o_O ) padding doesn't work, float doesn't work, etc etc and what about visual studio: bad bad bad code it generates, same for frontpage. All good and well (I hope that IE will use the correct javascript and CSS syntax) but then some other ms products need to generate also correct/validating code! and I saw that video from MS for the internet explorer web developer bar... The code in that video looks TERRIBLE! they write/wrote everyting in caps like: BORDER-BOTTOM  LIST-STYLE-TYPE I'm really wondering if the coders from ms can make a real valid website using notepad :s I can do better i'm sure anyone has some big website to make some pressure on MS? you're welcome

  • Anonymous
    August 29, 2007
    @Aaron You're not allowed to distribute as part of a commercial application.  That's all.  Why are you being such a moron?

  • Anonymous
    August 30, 2007
    @ash: Sorry, you are wrong. It clearly states "using the Software in the creation or use of commercial products".. So you can't test a commercial product using AjaxView. So basically it's useless. Too bad.

  • Anonymous
    August 30, 2007
    @Soren Yeah looks like you're right.  Sorry for the name calling.

  • Anonymous
    August 31, 2007
    The comment has been removed

  • Anonymous
    September 01, 2007
    it's not the fact that i can't change it to lowercase but it's a fact that ms team shows the wrong way again of doing it. why caps... everything is lowercase we don't live in the BASIC/ASSEMBLY time where everything should be written with caps because it looks nice. Yeah where can i complain about that? :)

  • Anonymous
    September 03, 2007
    What's wrong with the license file? Instead of RTF (which it claims to be) it is some kind of zipped XML. Word 2003 couldn't open it.

  • Anonymous
    September 10, 2007
    John Hrvatin talked about Web Development Tools for Internet Explorer at Microsoft TechEd 2007 in Orlando

  • Anonymous
    September 17, 2007
    "You should make a website and mail it to yourself and open it with outlook 2007 (it's been generated by word o_O ) padding doesn't work, float doesn't work, etc etc" dwarf: I think they do. The Office team made the decision to use the Word HTML rendering engine rather than the IE one as it did previously, so people who styled messages in Outlook (which uses the Word editor) could get them rendered as they were styled in Outlook. That would've all been fine, had the Word HTML rendering engine actually been up to task. Oh, and why do I know they do? Because of this at the top of the Xbox newsletter: "Please add Xbox@email.xbox.com to your address book to ensure delivery. Read this issue online if you can't see the images or are using Outlook 2007."