Showing posts with label Timex. Show all posts
Showing posts with label Timex. Show all posts

Friday, November 6, 2009

Postback Freezes Animated Gifs

Hello again all,

<rant>
In all my experiences in my life as a geek, I have found few things more frustrating than developing something for any version of Internet Explorer (please hold your shouts of agreement for the end). Internet Explorer 5 never really existed (did the internet exist then even?), Internet Explorer 6 was a complete atrocity, Internet Explorer 7 I am pretty sure caused the suicide rate amongst us geeks to go up significantly, and Internet Explorer 8, while better than its predecessors, only caused a few geeks to become severely dependent on mind-altering drugs to help them cope with the frustrations of life (or maybe just web development for IE).
</rant>

You may now cheer...

Now, down to business. On the topic of Internet Explorer doing things differently from the rest of the world simply for the sake of it (hey look, they're taking after Apple), I have recently experienced a very frustrating problem with animated gifs. Referring to my previous post about the file uploader, the client I was developing that for wanted an animation icon for the upload so their customers didn't think the page had frozen. Sounds like a simple task, no?

The problem can be described as this: When a postback event occurs (ie: clicking a link or submit button), Internet Explorer freezes all animated gifs on the page.

To explain how I fixed this, I essentially placed an animated 'rotating circle' on the page which was hidden until the onSubmit() function was called. Here's the code for the image while it was hidden.

<img src="./images/loading.gif" id="loader" style="visibility:hidden;" />

Annnd here's the code for the animation problem fix as well as the code that changes the image visibility.

function showLoader()
{

//*** Reload the image for IE ***
document.getElementById('loader').src='./images/loader.gif';
//*** Let's make the image visible ***
document.getElementById('loader').style.visibility = 'visible';

}


Note that this is not needed for any browsers other than Internet Explorer (any that I know of at least). Firefox, Google Chrome, and Safari all ran the animated gif image during postback without freezing it.

To explain how the fix works, when a postback occurs in Internet Explorer, it stops all animations on the page, as mentioned. The trick to fixing this is to reload the animated gifs when the postback occurs. In the example this occurs in the first line of the JavaScript function, (document.getElementById('loader').src='./images/loader.gif');. Right there we just re-set the source for the object to the source for the same object on postback.

That's how it works. Any thoughts? Criticism? Motions to boycott Internet Explorer 7?

Monday, October 19, 2009

Let's get started... again

Hi everyone,

For those of you who don't know me, I'm the author of the Musings of a Server Admin blog where I discussed many various areas relating to server security, troubleshooting, and the building and configuration of servers for Microsoft SharePoint, MSSQL, Microsoft Hyper-V, Windows Server 2008, Team Foundation Server 2010 and 2008, and various other server technologies out there.

Judging from the title of this blog you have no doubt guessed that the aforementioned Microsoft ship has sailed and we're now boarding another exciting one for more adventures into the vast world of technology. It almost makes it sound like it'll be fun. Have no worries though, I will try to do my best to make these posts as painless but helpful as possible via the use of clever buzzwords (get out your buzzword bingo cards), an xkcd.com comic here and there, and vivid imagery and screenshots to depict the dull and grey world of programming...alright, it's not THAT boring, or is that just me?

Here's to the hopefully painless, informational, and entertaining journey ahead.
Additionally, here's to Ric who aptly dubbed me Timex.

Cheers

Aaron Ball (Timex)