Skip to main content

Overweight Ajax

I came across an interesting article this morning on Ajaxian:  Ajax, Browsers, Running Out of Time.  The crux of the article is that the author's PC consistently gets bogged down if he leaves Ajax-heavy applications - such as Google Mail, Zimbra & Yahoo Mail - up for most of the day.   I can understand his pain, as i have noticed similar behavior with the new Yahoo Mail.  Sure, it's much "cooler" and easier to use than the "classic" version, but it comes with a cost.

This is why I am still very cautious and conservative when using Ajax components in APEX applications.  It's still too easy to create code that just doesn't play nice with browsers.  It's also 100% impossible to discern what else a browser is running when your Ajax component is fired up, which makes it all the more difficult to ensure that your code doesn't step on someone else's.

For better or worse, perception is reality.  If large-scale Ajax applications that the masses use degrade overall confidence in the technology, it will be even harder in the future to convince clients that even the smallest Ajax component in an APEX application is scalable, secure, and a good investment.

Comments

Anonymous said…
AJAX's days are numbered. Sooner or later, something like Adobe's Flex or Microsoft's Silverlight are going to become the norm for creating web-based applications.

Although HTML was never intended to be used for data entry, the browser makers and organizations like W3C have sat idle for far too long by not introducing native HTML widgets that would have filled the large gap that AJAX components now fill.
Carl Backstrom said…
>>
AJAX's days are numbered. Sooner or later, something like Adobe's Flex or Microsoft's Silverlight are going to become the norm for creating web-based applications.
>>

bah what do you work for adobe or microsoft?

the problem is you have people throwing ajax at things that have no need for it.

I use ajax everyday and carefully decided where and when to put it, when and where it makes sense and it kicks a...

proprietary formats silverlight and flex /air and truthfully xul are bad.

Why buy into in micorsoft and adobes personal little war when you can just follow web standards. Javascript and html work everywhere even your brand spanking new iphone.
Carl Backstrom said…
Not you Scott ;) my comment was for the first "Anonymous" commenter.
Scott said…
I'm going to have to agree more with Carl here; there will be some people who go with Adobe and MSFT, but I think that keeping with a standard, portable format is more advantageous.

Ajax is relatively young, and like most young technologies, people do stupid things with it. How many spinning, flaming Java applet logos were there in the 90s?

I also think that people will be hesitant to adopt another MSFT web "standard", for fear of some obscure dependency on IE. Remember what MSFT did to Java?

HTML is simply too common to be quickly or completely replaced, at least in the next several years.

- Scott -
mathewbutler said…
I don't have a problem with AJAX per se.

However, I'm still using the old version fo yahoo mail, and given the choice will continue to do so.

Mathew Butler

Popular posts from this blog

Custom Export to CSV

It's been a while since I've updated my blog. I've been quite busy lately, and just have not had the time that I used to. We're expecting our 1st child in just a few short weeks now, so most of my free time has been spent learning Lamaze breathing, making the weekly run to Babies R Us, and relocating my office from the larger room upstairs to the smaller one downstairs - which I do happen to like MUCH more than I had anticipated. I have everything I need within a short walk - a bathroom, beer fridge, and 52" HD TV. I only need to go upstairs to eat and sleep now, but alas, this will all change soon... Recently, I was asked if you could change the way Export to CSV in ApEx works. The short answer is, of course, no. But it's not too difficult to "roll your own" CSV export procedure. Why would you want to do this? Well, the customer's requirement was to manipulate some data when the Export link was clicked, and then export it to CSV in a forma...

Manipulating Images with the... Database?

A recent thread on the OTN HTML DB Forum asked about how to determine the width & height of an image stored as a BLOB in an Oracle table. I mentioned in that thread that I have some code to manipulate an image stored in a BLOB column. This is particularly useful if you’re going to let users upload images, and you want to re-size them to display as a thumbnail. Thanks to Oracle interMedia , it is trivial to manipulate the width, height, and other attributes of images stored in an Oracle table. I’ve created a sample application here which demonstrates Oracle interMedia and HTML DB in action. Feel free to have a look. You can download this application from HTML DB Studio as well. Basically, this application allows you to upload images and perform an operation on the image as it is inserted into the PHOTO_CATALOG table. There are two places where some PL/SQL code is required: an After Submit process on page 2, and a procedure to display the images. Here is the PL/SQL for the After...

Refreshing PL/SQL Regions in APEX

If you've been using APEX long enough, you've probably used a PL/SQL Region to render some sort of HTML that the APEX built-in components simply can't handle. Perhaps a complex chart or region that has a lot of custom content and/or layout. While best practices may be to use an APEX component, or if not, build a plugin, we all know that sometimes reality doesn't give us that kind of time or flexibility. While the PL/SQL Region is quite powerful, it still lacks a key feature: the ability to be refreshed by a Dynamic Action. This is true even in APEX 5. Fortunately, there's a simple workaround that only requires a small change to your code: change your procedure to a function and call it from a Classic Report region. In changing your procedure to a function, you'll likely only need to make one type of change: converting and htp.prn calls to instead populate and return a variable at the end of the function. Most, if not all of the rest of the code can rem...