<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>JavaScript</title><link>http://blogs.crsw.com/mark/category/69.aspx</link><description>JavaScript</description><managingEditor>Mark H. Wagner</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Mark H. Wagner</dc:creator><title>Send Email Link for IE</title><link>http://blogs.crsw.com/mark/archive/2005/04/07/835.aspx</link><pubDate>Thu, 07 Apr 2005 10:24:00 GMT</pubDate><guid>http://blogs.crsw.com/mark/archive/2005/04/07/835.aspx</guid><wfw:comment>http://blogs.crsw.com/mark/comments/835.aspx</wfw:comment><comments>http://blogs.crsw.com/mark/archive/2005/04/07/835.aspx#Feedback</comments><slash:comments>26</slash:comments><wfw:commentRss>http://blogs.crsw.com/mark/comments/commentRss/835.aspx</wfw:commentRss><trackback:ping>http://blogs.crsw.com/mark/services/trackbacks/835.aspx</trackback:ping><description>&lt;P&gt;I try not to have any (OK, many) obsessions; however, one is my consumption for information.&amp;nbsp; Because of this I have to strictly monitor myself from deviating from my present task.&amp;nbsp; I am sometimes easily distracted.&lt;/P&gt;
&lt;P&gt;To help me remember about &amp;#8220;something I found interesting&amp;#8220;, I have a nice little custom link button labeled &amp;#8220;Send&amp;#8221; that&amp;nbsp;I use in my Internet Explorer browser to quickly send myself an email.&amp;nbsp; The email contains a subject and the link to the website in the body.&amp;nbsp; Yes, you can do this by clicking, File &amp;gt; Send &amp;gt; Link&amp;nbsp;by E-Mail,&amp;nbsp;but&amp;nbsp;this is to many clicks for me.&amp;nbsp;&amp;nbsp;Yes, I am impatient and have to work on this also.&lt;/P&gt;
&lt;P&gt;This works with &lt;STRONG&gt;one click&lt;/STRONG&gt; - much better.&amp;nbsp; Your Links toolbar needs to be turned on to easily access the buttons in IE.&amp;nbsp; I have my located immediately after the Address bar as shown here.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/mark/postfiles/sendbutton.jpeg"&gt;&lt;/P&gt;
&lt;P&gt;Simply paste the the following javascript code into the URL of the link properties.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000080&gt;javascript:navigate('mailto:YOUR-EMAIL@HERE.COM?subject=LINK:%20'+escape(document.title)+'&amp;amp;BODY='+escape(location.href))&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The only thing you need to customize is the YOUR-EMAIL@HERE.COM portion.&amp;nbsp; Here is a sample of the properties dialog.&lt;/P&gt;
&lt;P&gt;To create a link button you can drag the &amp;#8220;e&amp;#8220; icon in the address bar to the Link toobar.&amp;nbsp; To get the properties, right-mouse-click on a link you want to edit.&amp;nbsp; Here is a sample of the properties dialog.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="/mark/postfiles/sendbuttonprops.jpeg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Warning:&lt;/STRONG&gt; For me these emails are subtle &amp;#8220;tasks&amp;#8221; to learn more.&amp;nbsp; Your inbox may quickly fill up. :)&lt;/P&gt;&lt;img src ="http://blogs.crsw.com/mark/aggbug/835.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark H. Wagner</dc:creator><title>Building a Better Busy Box (Processing… Please Wait) - Ver 1.2</title><link>http://blogs.crsw.com/mark/archive/2005/02/16/737.aspx</link><pubDate>Wed, 16 Feb 2005 10:09:00 GMT</pubDate><guid>http://blogs.crsw.com/mark/archive/2005/02/16/737.aspx</guid><description>&lt;P&gt;&lt;FONT size=5&gt;Building a Better Busy Box - Ver 1.2&lt;BR&gt;(Processing&amp;#8230; Please Wait)&lt;BR&gt;&lt;/FONT&gt;&lt;A title="" href="vid:/mark" target=_blank&gt;&lt;A title="" href="vid:/mark" target=_blank&gt;&lt;FONT color=#000080&gt;&lt;/A&gt;&lt;BR&gt;&lt;A title="" href="vid:/mark" target=_blank&gt;Mark Wagner&lt;/A&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/A&gt;&lt;BR&gt;Castle Rock Software, LLC&lt;BR&gt;&lt;A href="http://blogs.crsw.com/mark"&gt;&lt;FONT color=#000080&gt;http://blogs.crsw.com/mark&lt;/FONT&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;February 16, 2005 &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Updates&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;February 16, 2005 - Rewrite to use an IFRAME instead of a DIV tag. 
&lt;LI&gt;January 7, 2005 - Fixed z-Index attribute. 
&lt;LI&gt;November 13, 2004 - Original article&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; We often need to provide a user message informing the user that their request is &amp;#8220;processing&amp;#8221;.  Like the hour-glass mouse pointer lets the Windows user know the system is busy processing their last request, I have a simple, clean, and effect solution to providing this on web pages.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;BusyBox Demo&lt;/STRONG&gt; &lt;BR&gt;&lt;/STRONG&gt;&lt;A href="http://blogs.crsw.com/mark/samples/BusyBoxDemo/Default.aspx" target=_blank&gt;&lt;FONT color=#000080&gt;http://blogs.crsw.com/mark/samples/BusyBoxDemo/Default.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Article source and sample code links&lt;BR&gt;&lt;/STRONG&gt;This article is located at: &lt;A href="http://blogs.crsw.com/mark/articles/642.aspx"&gt;http://blogs.crsw.com/mark/articles/642.aspx&lt;/A&gt;&lt;BR&gt;Source code sample at: &lt;A href="http://blogs.crsw.com/mark/files/BusyBox-1.2-Demo.zip"&gt;&lt;FONT color=#000080&gt;http://blogs.crsw.com/mark/files/BusyBox-1.2-Demo.zip&lt;/FONT&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Technologies employed&lt;/STRONG&gt; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;JavaScript 
&lt;LI&gt;HTML (ASP.NET)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Supported browsers&lt;/STRONG&gt;  &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Internet Explorer 6 
&lt;LI&gt;Netscape Navigator 7.1, 7.2 
&lt;LI&gt;Firefox 1.0 
&lt;LI&gt;No other browsers have been tested &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT size=5&gt;Introduction&lt;/FONT&gt; &lt;BR&gt;Anyone who has used the Internet for more than a few hours has encountered times when the &amp;#8220;Internet&amp;#8221; is being slow.  I use the term &amp;#8220;Internet&amp;#8221; in jest here since it is often the term used when websites are not responding as quickly as we would like.  As most of us know, the problem is more often caused by an over-worked website, one that is unable to handle its current workload.  This article does not address any performance issues as that is a much larger topic for another time.  However, for those well designed and well cared-for websites there are very acceptable times when displaying a &amp;#8220;processing&amp;#8221; message to the user is very helpful and very appropriate. &lt;/P&gt;
&lt;P&gt;I have certainly experienced times; as I am sure you have, where after clicking a submit or search button I began to wonder if the web server was going to process my request successfully.  Why shouldn&amp;#8217;t it.  I didn&amp;#8217;t expect it to take more than a second or two.  Performing functions like a search, report generation, or the processing of a large order, can often take more time than we would like.  These predictably slow responding places in an application are ideal candidates for user feedback in the form of a processing message.  As long as your website is not normally slow, your users will appreciate being notified of potentially long running processes. &lt;/P&gt;
&lt;P&gt;There are a number of different approaches to accomplishing this.  One of the more common methods is to navigate to an intermediate page where an animated image and/or message are presented to the user.  The intermediate page then immediately initiates the process of navigating to the long-processing page.  This allows the intermediate &amp;#8220;please wait&amp;#8221; page to be displayed to the user while the long-processing target page is crunching away.  When the target page completes its long process it then begins rendering to the user&amp;#8217;s browser, thus replacing the &amp;#8220;please wait&amp;#8221; message.  While this technique works well when navigating from page A to page B, it does not work well when a post-back (from page A to page A) is needed.  Additionally, having the benefits of things like ViewState become discarded. &lt;/P&gt;
&lt;P&gt;&lt;FONT size=5&gt;My Approach&lt;/FONT&gt; &lt;BR&gt;The approach I am about to cover functions just as well during a post-back as it does when navigating from page X to page Y.  Moreover, there is no need (or desire) to have an intermediate processing page.  If you are using a custom base page for your application; (i.e. a MasterPage), it becomes even easier to user.  I have added this to my personal CastlePage class making it very easy to use at anytime. &lt;/P&gt;
&lt;P&gt;My approach is to pre-load my busy box message in a hidden IFRAME &lt;EM&gt;&lt;/EM&gt;tag on any page that will navigate (or post-back) to a potentially long running process. After all, my busy box message has a pretty small code footprint. The page will begin it&amp;#8217;s unload process whenever the browser posts to a new page or performs a post-back. By placing JavaScript code in the &lt;EM&gt;onbeforeunload&lt;/EM&gt; event of the &lt;EM&gt;body&lt;/EM&gt; tag I can instantly reveal the busy box message to the user. Since this is part of the original page it will display immediately and remain visible until the new page completes its processing and begins to render in the user's browser. Best of all, this works great with post-backs too.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.crsw.com/mark/articles/642.aspx"&gt;Click here for the complete article.&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.crsw.com/mark/aggbug/737.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark H. Wagner</dc:creator><title>Busy Box improvements...</title><link>http://blogs.crsw.com/mark/archive/2005/02/10/730.aspx</link><pubDate>Thu, 10 Feb 2005 11:18:00 GMT</pubDate><guid>http://blogs.crsw.com/mark/archive/2005/02/10/730.aspx</guid><wfw:comment>http://blogs.crsw.com/mark/comments/730.aspx</wfw:comment><comments>http://blogs.crsw.com/mark/archive/2005/02/10/730.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.crsw.com/mark/comments/commentRss/730.aspx</wfw:commentRss><trackback:ping>http://blogs.crsw.com/mark/services/trackbacks/730.aspx</trackback:ping><description>&lt;P&gt;I have my updated busy box completed.&amp;nbsp; Before I post the new code to my blog, I need to update my article and sample.&amp;nbsp; Should be up sometime in the next day or so.&lt;/P&gt;&lt;img src ="http://blogs.crsw.com/mark/aggbug/730.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark H. Wagner</dc:creator><title>JavaScript ASP.NET Rater control (Rating control): Sneak Peek</title><link>http://blogs.crsw.com/mark/archive/2005/01/30/719.aspx</link><pubDate>Sun, 30 Jan 2005 17:15:00 GMT</pubDate><guid>http://blogs.crsw.com/mark/archive/2005/01/30/719.aspx</guid><wfw:comment>http://blogs.crsw.com/mark/comments/719.aspx</wfw:comment><comments>http://blogs.crsw.com/mark/archive/2005/01/30/719.aspx#Feedback</comments><slash:comments>55</slash:comments><wfw:commentRss>http://blogs.crsw.com/mark/comments/commentRss/719.aspx</wfw:commentRss><trackback:ping>http://blogs.crsw.com/mark/services/trackbacks/719.aspx</trackback:ping><description>&lt;P&gt;Rater Control, Rating Control, or 5-Star Rating Control, call it what you like.&lt;/P&gt;
&lt;P&gt;I have created a new JavaScript ASP.NET Rater control (Rating Control)&lt;STRONG&gt;.&lt;/STRONG&gt;&amp;nbsp; The entire functionality is driven by JavaScript, but I have also created an custom .NET control to facilitate easy use in an ASP.NET&amp;nbsp;web appication.&amp;nbsp;&amp;nbsp;I intend on&amp;nbsp;writing a much more detailed article,&amp;nbsp;soon I hope.&amp;nbsp; For now you can see my demo page for a better look.&lt;/P&gt;
&lt;P&gt;Technologies:&lt;BR&gt;JavaScript&lt;BR&gt;C#&lt;BR&gt;ASP.NET&lt;/P&gt;
&lt;P&gt;Here is a sneak peak at the Rater control in action: (Hint: use your mouse.)&lt;/P&gt;
&lt;P&gt;
&lt;SCRIPT language=javascript src="/mark/Samples/CastleRaterDemo/js/CastleRater.js"&gt;&lt;/SCRIPT&gt;

&lt;SCRIPT language=javascript&gt;
CastleRater.CreateJSControl("rater1", "http://blogs.crsw.com/mark/Samples/CastleRaterDemo/Images/StarOn.gif", "http://blogs.crsw.com/mark/Samples/CastleRaterDemo/Images/StarOff.gif", "http://blogs.crsw.com/mark/Samples/CastleRaterDemo/Images/StarOver.gif", 5, 0);
&lt;/SCRIPT&gt;
&lt;/P&gt;
&lt;P&gt;Demo: &lt;A href="http://blogs.crsw.com/mark/samples/CastleRaterDemo/" target=_blank&gt;http://blogs.crsw.com/mark/samples/CastleRaterDemo/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.crsw.com/mark/files/Castle.Web.Controls.RaterDemo.1.1.zip"&gt;&lt;IMG src="/mark/images/download.gif" border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://blogs.crsw.com/mark/files/Castle.Web.Controls.RaterDemo.1.1.zip"&gt;Download the demo (and control).&lt;/A&gt;&lt;BR&gt;&lt;A href="http://blogs.crsw.com/mark/files/Castle.Web.Controls.Rater.1.1.zip"&gt;&lt;IMG src="/mark/images/download.gif" border=0&gt;&amp;nbsp;Download the control only.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Note: For anyone who would like to link to my&amp;nbsp;Rater control, please link to this post and not my demo page.&amp;nbsp; Thanks.&amp;nbsp; Also, I will make the C# source code for the .NET control available soon.&lt;/P&gt;&lt;img src ="http://blogs.crsw.com/mark/aggbug/719.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark H. Wagner</dc:creator><title>JavaScript Object Browser</title><link>http://blogs.crsw.com/mark/archive/2004/12/22/653.aspx</link><pubDate>Wed, 22 Dec 2004 13:39:00 GMT</pubDate><guid>http://blogs.crsw.com/mark/archive/2004/12/22/653.aspx</guid><description>&lt;P&gt;Below is a small JavaScript application that allows you to browse through various objects on the DOM as well as JavaScript variables.  I wrote this in an attempt to better understand the differences between various web browsers, specifically Internet Explorer, Netscape, and Firefox.&lt;/P&gt;
&lt;P&gt;You can &lt;STRONG&gt;&lt;A href="http://www.crsw.com/blogs/Mark/Files/JSObjectBrowserSample.zip"&gt;download&lt;/A&gt;&lt;/STRONG&gt; my sample.&lt;/P&gt;
&lt;P&gt;You will find a top level &lt;STRONG&gt;window&lt;/STRONG&gt; object with all its immediate children located blow.  Links are available on child objects where appropriate.  This is 100% driven by looking at each object property generically, meaning, nothing is hard-coded.  This allows any of your custom JavaScript variables (&lt;STRONG&gt;in a Netscape browser its even better&lt;/STRONG&gt;) to be viewed.&lt;/P&gt;
&lt;P&gt;Areas I found of particular interest:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;the &lt;EM&gt;&lt;STRONG&gt;windows.document&lt;/STRONG&gt;&lt;/EM&gt; node of the tree. 
&lt;LI&gt;functions will appear with a &lt;EM&gt;function&lt;/EM&gt; link.  Clicking on this link will reveal the JavaScript for that function. 
&lt;LI&gt;the &lt;EM&gt;window.top.document.scripts&lt;/EM&gt; link will list all the script tags, and the associated script if the actual script is embedded within the document.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://blogs.crsw.com/mark/articles/652.aspx"&gt;Click here for the complete article...&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.crsw.com/mark/aggbug/653.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark H. Wagner</dc:creator><title>Building a Better Busy Box (Processing… Please Wait)</title><link>http://blogs.crsw.com/mark/archive/2004/11/15/582.aspx</link><pubDate>Mon, 15 Nov 2004 21:50:00 GMT</pubDate><guid>http://blogs.crsw.com/mark/archive/2004/11/15/582.aspx</guid><description>&lt;P&gt;&lt;FONT size=5&gt;Building a Better Busy Box (Processing&amp;#8230; Please Wait)&lt;BR&gt;&lt;/FONT&gt;&lt;A title="" href="vid:/mark" target=_blank&gt;&lt;A title="" href="vid:/mark" target=_blank&gt;&lt;FONT color=#000080&gt;&lt;A title="" href="vid:/mark" target=_blank&gt;Mark Wagner&lt;/A&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/A&gt;&lt;BR&gt;Castle Rock Software, LLC&lt;BR&gt;&lt;A href="http://blogs.crsw.com/mark"&gt;&lt;FONT color=#000080&gt;http://blogs.crsw.com/mark&lt;/FONT&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UPDATED February 15, 2005&lt;BR&gt;A NEW VERSION (1.2) IS COVERD BY A NEW ARTICLE HERE:&lt;BR&gt;&lt;A href="http://blogs.crsw.com/mark/articles/734.aspx"&gt;http://blogs.crsw.com/mark/articles/734.aspx&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;November 13, 2004 &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.crsw.com/mark/articles/642.aspx#LastUpdated"&gt;&lt;STRONG&gt;UPDATED January 7, 2005&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.crsw.com/mark/articles/642.aspx#KnownIssues"&gt;&lt;STRONG&gt;Known Issues&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary:&lt;/STRONG&gt; We often need to provide a user message informing the user that their request is &amp;#8220;processing&amp;#8221;.  Like the hour-glass mouse pointer lets the Windows user know the system is busy processing their last request, I have a simple, clean, and effect solution to providing this on web pages.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;BusyBox Demo&lt;BR&gt;&lt;/STRONG&gt;&lt;A href="http://blogs.crsw.com/mark/samples/BusyBoxSample/Page1.aspx"&gt;&lt;FONT color=#000080&gt;http://blogs.crsw.com/mark/samples/BusyBoxSample/Page1.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Article source and sample code links&lt;BR&gt;&lt;/STRONG&gt;This article is located at: &lt;A id=Editor_Edit_hlEntryLink title="view: Building a Better Busy Box (Processing&amp;#8230; Please Wait)" href="vid:/mark/articles/581.aspx" target=_blank&gt;&lt;FONT color=#002c99&gt;http://blogs.crsw.com/mark/articles/581.aspx&lt;/FONT&gt;&lt;/A&gt; &lt;BR&gt;Source code sample at: &lt;A href="http://blogs.crsw.com/mark/files/busyboxsample.zip"&gt;&lt;FONT color=#000080&gt;http://blogs.crsw.com/mark/files/busyboxsample.zip&lt;/FONT&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Technologies employed&lt;/STRONG&gt; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;JavaScript 
&lt;LI&gt;ASP.NET (HTML) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Supported browsers&lt;/STRONG&gt;  &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Internet Explorer 6 
&lt;LI&gt;Netscape Navigator 7 
&lt;LI&gt;Firefox 1.0 
&lt;LI&gt;No other browsers have been tested &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT size=5&gt;Introduction&lt;/FONT&gt; &lt;BR&gt;Anyone who has used the Internet for more than a few hours has encountered times when the &amp;#8220;Internet&amp;#8221; is being slow.  I use the term &amp;#8220;Internet&amp;#8221; in jest here since it is often the term used when websites are not responding as quickly as we would like.  As most of us know, the problem is more often caused by an over-worked website, one that is unable to handle current workload.  This article does not address any performance issues as that is a much larger topic for another time.  However, for those well designed and well cared-for websites there are very acceptable times when displaying a &amp;#8220;processing&amp;#8221; message to the user is very helpful and very appropriate. &lt;/P&gt;
&lt;P&gt;I have certainly experienced times; as I am sure you have, where after clicking a submit or search button I began to wonder if the web server was going to process my request successfully.  Why shouldn&amp;#8217;t it.  I didn&amp;#8217;t expect it to take more than a second or two.  Performing functions like a search, report generation, or the processing of a large order, can often take more time than we would like.  These predictably slow responding places in an application are ideal candidates for user feedback in the form of a processing message.  As long as your website is not normally slow, your users will appreciate being notified of potentially long running processes. &lt;/P&gt;
&lt;P&gt;There are a number of different approaches to accomplishing this.  One of the more common methods is to navigate to an intermediate page where an animated image and/or message are presented to the user.  The intermediate page then immediately initiates the process of navigating to the long-processing page.  This allows the intermediate &amp;#8220;please wait&amp;#8221; page to be displayed to the user while the long-processing target page is crunching away.  When the target page completes its long process it then begins rendering to the user&amp;#8217;s browser, thus replacing the &amp;#8220;please wait&amp;#8221; message.  While this technique works well when navigating from page A to page B, it does not work well when a post-back (from page A to page A) is needed.  Additionally, having the benefits of things like ViewState become discarded. &lt;/P&gt;
&lt;P&gt;&lt;FONT size=5&gt;My Approach&lt;/FONT&gt; &lt;BR&gt;The approach I am about to cover functions just as well during a post-back as it does when navigating from page X to page Y.  Moreover, there is no need (or desire) to have an intermediate processing page.  If you are using a custom base page for your application; (i.e. a MasterPage), it becomes even easier to user.  I have added this to my personal CastlePage class making it very easy to use at anytime. &lt;/P&gt;
&lt;P&gt;My approach is to pre-load my busy box message in a hidden &lt;EM&gt;div&lt;/EM&gt; tag on any page that will navigate (or post-back) to a potentially long running process. After all, my busy box message has a pretty small code footprint. The page will begin it&amp;#8217;s unload process whenever the browser posts to a new page or performs a post-back. By placing JavaScript code in the &lt;EM&gt;onbeforeunload&lt;/EM&gt; event of the &lt;EM&gt;body&lt;/EM&gt; tag I can instantly reveal the busy box message to the user. Since this is part of the original page it will display immediately and remain visible until the new page completes its processing and begins to render in the users browser. Best of all, this works great with post-backs too.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.crsw.com/mark/articles/642.aspx"&gt;click here for the complete article...&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://blogs.crsw.com/mark/aggbug/582.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>