<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Anil Kasalanati</title><link>http://weblogs.asp.net/anilkasalanati/default.aspx</link><description>....on asp.net AJAX, WCF and WF</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Debug slow calls using IIS Logs</title><link>http://weblogs.asp.net/anilkasalanati/archive/2012/01/06/debug-slow-calls-using-iis-logs.aspx</link><pubDate>Fri, 06 Jan 2012 14:09:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:8228252</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=8228252</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2012/01/06/debug-slow-calls-using-iis-logs.aspx#comments</comments><description>&lt;p&gt;For any asp.net/WCF application hosted on IIS it is essential to monitor the response times of the web requests and the easiest way to do this is by using IIS logs. I use Log analyzer to output the calls taking a lot of time. Following steps would help you do it yourself and be an expert in monitoring your own performance. It is important to prove your point with statistical data.&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Download following tool to analyze the IIS Logs -&lt;/p&gt;



&lt;p class="MsoNormal"&gt;LogAnalyzer -&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=24659" mce_href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=24659"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=24659&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And you need to run queries to query the avg time taken and
response time.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Example query for avg response times -&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;LogParser -i:IISW3C "SELECT cs-uri-stem,
AVG(time-taken) As AvgTime FROM &lt;span style="background: none repeat scroll 0% 0% yellow;"&gt;C:\inetpub\Logs\*.log&lt;/span&gt; GROUP BY cs-uri-stem" &amp;nbsp;- Replace
the log path&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Example query for response time for a resource-&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;LogParser -i:IISW3C "SELECT cs-uri-stem, COUNT(*) As
Hits FROM &lt;span style="background: none repeat scroll 0% 0% yellow;"&gt;C:\inetpub\Logs\*.log&lt;/span&gt;
WHERE EXTRACT_FILENAME(cs-uri-stem) = &lt;span style="background: none repeat scroll 0% 0% yellow;"&gt;'sample.ashx'&lt;/span&gt; AND sc-status = '200' GROUP
BY cs-uri-stem"&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And you can output the report and expose it online via IIS.&lt;br&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;With this I hope each one of you can easily debug problems in production.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;I found this link quite useful for writing simple queries -&lt;/p&gt;&lt;p class="MsoNormal"&gt;http://www.praveenmodi.com/parsing-iis-logs-with-logparser-22/&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=8228252" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/.NET+FAQ/default.aspx">.NET FAQ</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/IIS/default.aspx">IIS</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Atlas/default.aspx">Atlas</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/WPF/default.aspx">WPF</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Vista/default.aspx">Vista</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Infocard/default.aspx">Infocard</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Commerce+Server/default.aspx">Commerce Server</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/WinFX/default.aspx">WinFX</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Agile/default.aspx">Agile</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/CLR/default.aspx">CLR</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Biztalk/default.aspx">Biztalk</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/BCL/default.aspx">BCL</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Avalon/default.aspx">Avalon</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/WWF/default.aspx">WWF</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Windows+Forms/default.aspx">Windows Forms</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Content+Management+Server/default.aspx">Content Management Server</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Visual+Basic/default.aspx">Visual Basic</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Mobile/default.aspx">Mobile</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Community+News/default.aspx">Community News</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Crossbow/default.aspx">Crossbow</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Simple way of converting server side objects into client side using JSON serialization for asp.net websites</title><link>http://weblogs.asp.net/anilkasalanati/archive/2010/12/29/simple-way-of-converting-server-side-objects-into-client-side-using-json-serialization-for-asp-net-websites.aspx</link><pubDate>Wed, 29 Dec 2010 15:01:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7670011</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=7670011</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2010/12/29/simple-way-of-converting-server-side-objects-into-client-side-using-json-serialization-for-asp-net-websites.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 12pt; line-height: 115%; color: rgb(31, 73, 125);"&gt;Introduction:-&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;With the growth of Web2.0 and the need for faster user
experience the spotlight has shifted onto javascript based applications built
using REST pattern or asp.net AJAX Pagerequest manager. And when we are working
with javascript wouldn’t it be much better if we could create objects in an
OOAD way and easily push it to the client side.&lt;span style=""&gt;&amp;nbsp;
&lt;/span&gt;Following are the reasons why you would push the server side objects
onto client side&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Easy availability of the complex object.&lt;/li&gt;&lt;li&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use C# compiler and rich intellisense to create and
maintain the objects but use them in the javascript. You could run code
analysis etc.&lt;/li&gt;&lt;li&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Reduce the number of calls we make to the server
side by loading data on the pageload.&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img25.png" mce_src="http://techconsulting.vpscustomer.com/images/img25.png"&gt;&lt;/li&gt;&lt;/ul&gt;







&lt;p class="MsoNormal"&gt;I would like to explain about the 3&lt;sup&gt;rd&lt;/sup&gt; point
because that proved to be highly beneficial to me when I was fixing the
performance issues of a major website. There could be a scenario where in you
be making multiple AJAX based webrequestmanager calls in order to get the same
response in a single page. This happens in the case of widget based framework
when all the widgets are independent but they need some common information available
in the framework to load the data. So instead of making n multiple calls we
could load the data needed during pageload.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png" width="389" height="252"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The above picture shows the scenario where in all the
widgets need the common information and then call GetData webservice on the
server side. Ofcourse the result can be cached on the client side but a better
solution would be to avoid the call completely.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;In order to do that we need to JSONSerialize the content and
send it in the DOM. &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;img src="http://techconsulting.vpscustomer.com/images/img26.png" mce_src="http://techconsulting.vpscustomer.com/images/img26.png"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png" width="454" height="275"&gt;&lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 12pt; line-height: 115%; color: rgb(31, 73, 125);"&gt;Example:-&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;I have developed a simple application to demonstrate the
idea and I would explaining that in detail here.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The class called SimpleClass would be sent as serialized
JSON to the client side .&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png" width="391" height="307"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img21.png" mce_src="http://techconsulting.vpscustomer.com/images/img21.png"&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And this inherits from the base class which has the implementation
for the GetJSONString method. You can create a single base class and all the
object which need to be pushed to the client side can inherit from that class.
The important thing to note is that the class should be annotated with DataContract
attribute and the methods should have the Data Member attribute. This is needed
by the .Net DataContractSerializer and this follows the opt-in mode so if you
want to send an attribute to the client side then you need to annotate the
DataMember attribute. So if I didn’t want to send the Result I would simple
remove the DataMember attribute. This is default WCF/.Net 3.5 stuff but it
provides the flexibility of have a fullfledged object on the server side but
sending a smaller object to the client side. Sometimes you may hide some values
due to security constraints.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;And thing you will notice is that I have marked the class as Serializable so that it can be stored in the Session and used in webfarm deployment scenarios. &lt;br&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Following is the implementation of the base class –&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;img src="http://techconsulting.vpscustomer.com/images/img22.png" mce_src="http://techconsulting.vpscustomer.com/images/img22.png"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png" width="621" height="383"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;This implements the default DataContractJsonSerializer and
for more information or customization refer to following blogs –&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://softcero.blogspot.com/2010/03/optimizing-net-json-serializing-and-ii.html"&gt;http://softcero.blogspot.com/2010/03/optimizing-net-json-serializing-and-ii.html&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2010/12/28/asp-net-serializing-and-deserializing-json-objects.aspx"&gt;http://weblogs.asp.net/gunnarpeipman/archive/2010/12/28/asp-net-serializing-and-deserializing-json-objects.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The next part is pretty simple, I just need to inject this
object into the aspx page.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg" width="623" border="0" height="307"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img23.png" mce_src="http://techconsulting.vpscustomer.com/images/img23.png"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And in the aspx markup I have the following line –&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: maroon; background: none repeat scroll 0% 0% silver;"&gt;script&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt; &lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="text/javascript"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;var&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt; data =(&amp;lt;%&lt;span style="color: blue;"&gt;=&lt;/span&gt;SimpleClassJSON&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;%&amp;gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;alert(data.ResultText);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: maroon; background: none repeat scroll 0% 0% silver;"&gt;script&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;This will output the content as JSON into the variable data
and this can be any element in the DOM. And you can verify the element by
checking data in the Firebug console.&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png" width="624" border="0" height="323"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;img src="http://techconsulting.vpscustomer.com/images/img24.png" mce_src="http://techconsulting.vpscustomer.com/images/img24.png" width="630" height="326"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 12pt; line-height: 115%; color: rgb(31, 73, 125);"&gt;Design
Consideration –&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;If you have a lot of javascripts then you need to think
about using Script # and you can write javascript in C#. Refer to Nikhil’s blog
–&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://projects.nikhilk.net/ScriptSharp"&gt;http://projects.nikhilk.net/ScriptSharp&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Ensure that you are taking security into consideration while
exposing server side objects on to client side. I have seen application
exposing passwords, secret key so it is not a good practice.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The application can be tested using the following url –&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://techconsulting.vpscustomer.com/Samples/JsonTest.aspx"&gt;http://techconsulting.vpscustomer.com/Samples/JsonTest.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The source code is available at&lt;/p&gt;

&lt;span style="font-size: 11pt; line-height: 115%; font-family: 'Calibri','sans-serif';"&gt;&lt;a href="http://techconsulting.vpscustomer.com/Source/HistoryTest.zip"&gt;http://techconsulting.vpscustomer.com/Source/HistoryTest.zip&lt;/a&gt;&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7670011" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Atlas/default.aspx">Atlas</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/JSON/default.aspx">JSON</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Server+side+objects+to+client+side/default.aspx">Server side objects to client side</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Serialization/default.aspx">Serialization</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Enabling Http caching and compression in IIS 7 for asp.net websites</title><link>http://weblogs.asp.net/anilkasalanati/archive/2010/12/29/enabling-http-caching-and-compression-in-iis-7-for-asp-net-websites.aspx</link><pubDate>Wed, 29 Dec 2010 05:20:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7669846</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=7669846</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2010/12/29/enabling-http-caching-and-compression-in-iis-7-for-asp-net-websites.aspx#comments</comments><description>

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="color: rgb(54, 95, 145);"&gt;Caching –&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;There are 2 ways to set Http caching&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;1-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Use Max age property&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;2-&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Expires header.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Doing the changes via IIS Console –&lt;/p&gt;

&lt;p class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;1.&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Select the website for which you want to enable
caching and then select Http Responses in the features tab&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img1.png" title="IIS 1" alt="IIS 1" mce_src="http://techconsulting.vpscustomer.com/images/img1.png" width="624" height="417"&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg" width="624" height="417"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img2.png" title="IIS HEaders" alt="IIS HEaders" mce_src="http://techconsulting.vpscustomer.com/images/img2.png" width="621" height="265"&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;2.&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Select the Expires webcontent and on changing
the After setting you can generate the max age property for the cache control&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img3.png" title="Header DEtailed" alt="Header DEtailed" mce_src="http://techconsulting.vpscustomer.com/images/img3.png" width="402" height="248"&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg" width="401" height="248"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&amp;nbsp;&lt;span style=""&gt;&lt;span style=""&gt;3.&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Following is the screenshot of the headers&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg" width="623" height="134"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;img src="http://techconsulting.vpscustomer.com/images/img4.png" title="Response" alt="Response" mce_src="http://techconsulting.vpscustomer.com/images/img4.png" width="610" height="133"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Then you can use some tool like fiddler and see 302 response
coming from the server.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Doing it &lt;b style=""&gt;web.config&lt;/b&gt;
way –&lt;/p&gt;

&lt;p class="MsoNormal"&gt;We can add static content section in the system.webserver
section&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;system.webServer&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;staticContent&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0.0001pt 0.5in; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;clientCache&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: red;"&gt;cacheControlMode&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;"&lt;span style="color: blue;"&gt;UseMaxAge&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;cacheControlMaxAge&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;365.00:00:00&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;staticContent&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="color: rgb(54, 95, 145);"&gt;Compression -&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;By default static compression is enabled on IIS 7.0 but the
only thing which falls under that category is CSS but this is not enough for
most of the websites using lots of javascript.&lt;span style=""&gt;&amp;nbsp;
&lt;/span&gt;If you just thought by enabling dynamic compression would fix this then
you are wrong so please follow following steps –&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;In some machines the dynamic compression is not enabled and
following are the steps to enable it –&lt;/p&gt;

&lt;ol start="1" type="1"&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Open
     server manager&lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Roles &amp;gt;
     Web Server (IIS)&lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Role Services
     (scroll down) &amp;gt; Add Role Services&lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Add
     desired role (Web Server &amp;gt; Performance &amp;gt; Dynamic Content
     Compression)&lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Next,
     Install, Wait…Done!&lt;/li&gt;
&lt;/ol&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg" width="212" height="51"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img5.png" mce_src="http://techconsulting.vpscustomer.com/images/img5.png"&gt;&lt;/p&gt;

&lt;ol start="1" type="1"&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Roles &amp;gt; Web Server (IIS) &lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Role Services (scroll down) &amp;gt; Add
     Role Services&lt;/li&gt;
&lt;/ol&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: 'Times New Roman','serif';"&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg" width="624" height="379"&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: 'Times New Roman','serif';"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: 'Times New Roman','serif';"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img6.png" mce_src="http://techconsulting.vpscustomer.com/images/img6.png"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: 'Times New Roman','serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;ol start="3" type="1"&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Add
     desired role (Web Server &amp;gt; Performance &amp;gt; Dynamic Content
     Compression)&lt;/li&gt;
&lt;/ol&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: 'Times New Roman','serif';"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img7.png" mce_src="http://techconsulting.vpscustomer.com/images/img7.png"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg" width="289" height="126"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;ol start="4" type="1"&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Next,
     Install, Wait…Done!&lt;/li&gt;
&lt;/ol&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img8.png" mce_src="http://techconsulting.vpscustomer.com/images/img8.png"&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg" width="430" height="127"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Enable&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;-&lt;/b&gt;&lt;/p&gt;

&lt;ol start="5" type="1"&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Open server manager &lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Roles &amp;gt; Web Server (IIS) &amp;gt;
     Internet Information Services (IIS) Manager&lt;/li&gt;
&lt;/ol&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg" width="175" height="92"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left: 0.5in; line-height: normal;"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img9.png" mce_src="http://techconsulting.vpscustomer.com/images/img9.png"&gt;&lt;/p&gt;

&lt;ol start="7" type="1"&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Next pane:
     Sites &amp;gt; Default Web Site &amp;gt; Your Web Site &lt;/li&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Main pane:
     IIS &amp;gt; Compression&lt;/li&gt;
&lt;/ol&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg" width="529" height="484"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img10.png" mce_src="http://techconsulting.vpscustomer.com/images/img10.png"&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style=""&gt;&lt;img src="file:///C:/Users/anil/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg" width="418" height="164"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;img src="http://techconsulting.vpscustomer.com/images/img11.png" mce_src="http://techconsulting.vpscustomer.com/images/img11.png"&gt;&lt;/p&gt;
&amp;nbsp;

&lt;p class="MsoNormal"&gt;Then comes the custom configuration for encrypting
javascript resources.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The problem is that the compression in IIS 7 completely
works on the mime types and by default there is a mismatch in the mime types &lt;/p&gt;

&lt;ol start="9" type="1"&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Go to
     following location &lt;/li&gt;
&lt;/ol&gt;

&lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;C:\Windows\System32\inetsrv\config&lt;/p&gt;

&lt;ol start="10" type="1"&gt;
&lt;li class="MsoNormal" style="line-height: normal;"&gt;Open applicationHost.config&lt;/li&gt;
&lt;/ol&gt;

&lt;p class="MsoNormal" style="margin-left: 0.5in; line-height: normal;"&gt;The mimemap is as follows&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraph" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: rgb(163, 21, 21);"&gt;mimeMap&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: red;"&gt;fileExtension&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas;"&gt;"&lt;span style="color: blue;"&gt;.js&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;mimeType&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% yellow;"&gt;"&lt;span style="color: blue;"&gt;application/javascript&lt;/span&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 0.5in; line-height: normal;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 0.5in; line-height: normal;"&gt;So the
section in the staticTypes should be changed&lt;span style="font-size: 9.5pt; font-family: Consolas; color: rgb(163, 21, 21);"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: rgb(163, 21, 21);"&gt;add&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: red;"&gt;mimeType&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% yellow;"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% yellow;"&gt;"&lt;span style="color: blue;"&gt;application/javascript&lt;/span&gt;"&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: red;"&gt;enabled&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas;"&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;Doing the web.config way
–&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;We can add following section in the system.webserver section&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;system.webServer&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;urlCompression&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: red;"&gt;doDynamicCompression&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;"&lt;span style="color: blue;"&gt;false&lt;/span&gt;"&lt;span style="color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red;"&gt;doStaticCompression&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;More Information/References –&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx"&gt;http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;span style="font-family: Symbol; color: rgb(31, 73, 125);"&gt;&lt;span style=""&gt;·&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.west-wind.com/weblog/posts/98538.aspx"&gt;&lt;span style=""&gt;http://www.west-wind.com/weblog/posts/98538.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;br&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7669846" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/IIS+7+caching+compression+dynamic+static+asp.net+websites/default.aspx">IIS 7 caching compression dynamic static asp.net websites</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Implementing History Support using jQuery for AJAX websites built on asp.net AJAX </title><link>http://weblogs.asp.net/anilkasalanati/archive/2010/12/29/implementing-history-support-for-ajax-website-built-on-microsoft-asp-net.aspx</link><pubDate>Wed, 29 Dec 2010 05:08:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7669836</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=7669836</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2010/12/29/implementing-history-support-for-ajax-website-built-on-microsoft-asp-net.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; line-height: 115%; color: rgb(0, 112, 192);"&gt;Problem Statement:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Most modern day website use AJAX for page navigation and
gone are the days of complete HTTP redirection so it is imperative that we
support back and forward buttons on the browser so that end users navigation is
not broken. In this article we discuss about solutions which are already
available and problems with them. &lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; line-height: 115%; color: rgb(0, 112, 192);"&gt;Microsoft History
Support:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Post .Net 3.5 sp1 Microsoft’s Script manager supports history
for websites using Update panels. This is achieved by enabling the ENABLE
HISTORY property for the script manager and then the event “Page_Browser_Navigate”
needs to be handled. So whenever the browser buttons are clicked the event is
fired and the application can write code to do the navigation.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The following articles provide good tutorials on how to do
that&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://www.asp.net/aspnet-in-net-35-sp1/videos/introduction-to-aspnet-ajax-history" mce_href="http://www.asp.net/aspnet-in-net-35-sp1/videos/introduction-to-aspnet-ajax-history"&gt;&lt;span style=""&gt;http://www.asp.net/aspnet-in-net-35-sp1/videos/introduction-to-aspnet-ajax-history&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://www.codeproject.com/KB/aspnet/ajaxhistorymanagement.aspx" mce_href="http://www.codeproject.com/KB/aspnet/ajaxhistorymanagement.aspx"&gt;&lt;span style=""&gt;http://www.codeproject.com/KB/aspnet/ajaxhistorymanagement.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And Microsoft api internally creates an IFrame and changes
the bookmark of the url. Unfortunately this has a bug and it does not work in
Ie6 and 7 which are the major browsers but it works in ie8 and Firefox. And
Microsoft has apparently fixed this bug in .Net 4.0. Following is the blog&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://weblogs.asp.net/joshclose/archive/2008/11/11/asp-net-ajax-addhistorypoint-bug.aspx" mce_href="http://weblogs.asp.net/joshclose/archive/2008/11/11/asp-net-ajax-addhistorypoint-bug.aspx"&gt;&lt;span style="font-family: 'Times New Roman','serif';"&gt;http://weblogs.asp.net/joshclose/archive/2008/11/11/asp-net-ajax-addhistorypoint-bug.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;For solutions which are still running on .net 3.5 sp1 there
is no solution which Microsoft offers so there is&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;are two way to solve this&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style=""&gt;o&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Disable the back button.&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;span style=""&gt;o&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Develop custom solution.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; line-height: 115%; color: rgb(0, 112, 192);"&gt;Disable back button&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Even though this might look like a very simple thing to do
there are issues around doing this&lt;span style=""&gt;&amp;nbsp;
&lt;/span&gt;because there is no event which can be manipulated from the javascript.
The browser does not provide an api to do this. So most of the technical
solution on internet offer work arounds like doing a history.forward(1) so that
even if the user clicks a back button the destination page redirects the user
to the original page. This is not a good customer experience and does not work
for asp.net website where there are different views in the same page.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;There are other ways around detecting the window unload
events and writing code there. So there are 2 events onbeforeUnload and
onUnload and we can write code to show a confirmation message to the user. If
we write code in onUnLoad then we can only show a message but it is too late to
stop the navigation. And if we write on onBeforeUnLoad we can stop the
navigation if the user clicks cancel but this event would be triggered for all
AJAX calls and hyperlinks where the href is anything other than #. We can do
this but the website has to be checked properly to ensure there are no links
where href is not # otherwise the user would see a popup message saying “you
are leaving the website”.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Believe me after
doing a lot of research on the back button disable I found it easier to support
it rather than disabling the button. So I am going to discuss a solution which
work&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;using jQuery with some tweaking.&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 12pt; line-height: 115%; color: rgb(0, 112, 192);"&gt;Custom Solution&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;JQuery already
provides an api to manage the history of a AJAX website - &lt;/b&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://plugins.jquery.com/project/history" mce_href="http://plugins.jquery.com/project/history"&gt;&lt;span style="font-family: 'Times New Roman','serif';"&gt;http://plugins.jquery.com/project/history&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;We need to integrate this with Microsoft Page request
manager so that both of them work in tandem.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The page state is maintained in the cookie so that it can be
passed to the server and I used jQuery cookie plug in for that –&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://plugins.jquery.com/node/1386/release" mce_href="http://plugins.jquery.com/node/1386/release"&gt;&lt;span style=""&gt;http://plugins.jquery.com/node/1386/release&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Firstly when the page loads there is a need to hook up all
the events on the page which needs to cause browser history and following is
the code to that.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;jQuery(document).ready(&lt;span style="color: blue;"&gt;function&lt;/span&gt;()
{&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// Initialize history plugin.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// The callback is called at once by present location.hash.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;jQuery.history.init(pageload);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// set onlick event for buttons&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;jQuery(&lt;span style="color: rgb(163, 21, 21);"&gt;"a[@rel='history']"&lt;/span&gt;).click(&lt;span style="color: blue;"&gt;function&lt;/span&gt;() {&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt; hash = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.page;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;hash =
hash.replace(/^.*#/, &lt;span style="color: rgb(163, 21, 21);"&gt;''&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;isAsyncPostBack = &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// moves to a new page. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// pageload is called at once.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;jQuery.history.load(hash);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;});&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; background: none repeat scroll 0% 0% lightgrey;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;});&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The above scripts basically gets all the DOM objects which
have the attribute rel=”history” and add the event. In our test page we have
the link button&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;which has the attribute &lt;i style=""&gt;rel&lt;/i&gt; set to &lt;i style=""&gt;history&lt;/i&gt;.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: maroon; background: none repeat scroll 0% 0% silver;"&gt;asp&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;:&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: maroon; background: none repeat scroll 0% 0% silver;"&gt;LinkButton&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="Previous"&lt;/span&gt; &lt;span style="color: red;"&gt;rel&lt;/span&gt;&lt;span style="color: blue;"&gt;="history"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt; &lt;span style="color: red;"&gt;onclick&lt;/span&gt;&lt;span style="color: blue;"&gt;="PreviousOnClick"&amp;gt;&lt;/span&gt;Previous&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;LinkButton&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: maroon; background: none repeat scroll 0% 0% silver;"&gt;asp&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;:&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: maroon; background: none repeat scroll 0% 0% silver;"&gt;LinkButton&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="AsyncPostBack"&lt;/span&gt; &lt;span style="color: red;"&gt;rel&lt;/span&gt;&lt;span style="color: blue;"&gt;="history"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt; &lt;span style="color: red;"&gt;onclick&lt;/span&gt;&lt;span style="color: blue;"&gt;="NextOnClick"&amp;gt;&lt;/span&gt;Next&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;LinkButton&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: maroon; background: none repeat scroll 0% 0% silver;"&gt;asp&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;:&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: maroon; background: none repeat scroll 0% 0% silver;"&gt;LinkButton&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="HistoryLinkButton"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt;
&lt;span style="color: red;"&gt;style&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: red;"&gt;display&lt;/span&gt;&lt;span style="color: blue;"&gt;:none"&lt;/span&gt; &lt;span style="color: red;"&gt;onclick&lt;/span&gt;&lt;span style="color: blue;"&gt;="HistoryOnClick"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;LinkButton&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And you can see that there is an hidden HistoryLinkButton
which used to send a sever side postback in case of browser back or previous
buttons. And note that we need to use display:none and not visible= false
because asp.net AJAX would disallow any post backs if visible=false.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And in general the pageload event get executed on the client
side when a back or forward is pressed and the function is shown below&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;function&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt; pageload(hash) {&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(hash) {&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(!isAsyncPostBack) {&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;jQuery.cookie(&lt;span style="color: maroon;"&gt;"page"&lt;/span&gt;, hash);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;__doPostBack(&lt;span style="color: maroon;"&gt;"HistoryLinkButton"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;""&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;isAsyncPostBack = &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;} &lt;span style="color: blue;"&gt;else&lt;/span&gt;
{&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;//
start page&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;jQuery(&lt;span style="color: maroon;"&gt;"#load"&lt;/span&gt;).empty();&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;As you can see in case there is an hash in the url we are
basically do an asp.net AJAX post back using the following statement&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9.5pt; line-height: 115%; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;__doPostBack(&lt;span style="color: maroon;"&gt;"HistoryLinkButton"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;""&lt;/span&gt;);&lt;/span&gt;&lt;span style="font-size: 9.5pt; line-height: 115%; font-family: Consolas;"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;So whenever the user clicks back or forward the post back
happens using the event statement we provide and Previous event code is invoked
in the code behind.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;We need to have the
code to use the pageId present in the url to change the page content.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And there is an important thing to note – because the hash
is worked out using the pageId’s there is a need to recalculate the hash after
every AJAX post back so following code is plugged in &lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; color: blue; background: none repeat scroll 0% 0% silver;"&gt;function&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt; ReWorkHash() {&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;jQuery(&lt;span style="color: maroon;"&gt;"a[@rel='history']"&lt;/span&gt;).unbind(&lt;span style="color: maroon;"&gt;"click"&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;jQuery(&lt;span style="color: maroon;"&gt;"a[@rel='history']"&lt;/span&gt;).click(&lt;span style="color: blue;"&gt;function&lt;/span&gt;() {&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;//
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;
hash = jQuery(&lt;span style="color: blue;"&gt;this&lt;/span&gt;).attr(&lt;span style="color: maroon;"&gt;"page"&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;hash = hash.replace(/^.*#/, &lt;span style="color: maroon;"&gt;''&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;jQuery.cookie(&lt;span style="color: maroon;"&gt;"page"&lt;/span&gt;, hash);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;isAsyncPostBack = &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;//
moves to a new page. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;//
pageload is called at once.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;jQuery.history.load(hash);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
&lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;});&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas; background: none repeat scroll 0% 0% silver;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: Consolas;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;This code is executed from the code behind using
ScriptManager&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New'; color: blue;"&gt; &lt;/span&gt;RegisterClientScriptBlock as shown below –&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New';"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175); background: none repeat scroll 0% 0% lightgrey;"&gt;ScriptManager&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% lightgrey;"&gt;.RegisterClientScriptBlock(&lt;span style="color: blue;"&gt;this&lt;/span&gt;, &lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43, 145, 175);"&gt;_Default&lt;/span&gt;), &lt;span style="color: rgb(163, 21, 21);"&gt;"Recalculater"&lt;/span&gt;,
&lt;span style="color: rgb(163, 21, 21);"&gt;"ReWorkHash();"&lt;/span&gt;, &lt;span style="color: blue;"&gt;true&lt;/span&gt;);&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;A sample application is available to be downloaded at the
following location –&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://techconsulting.vpscustomer.com/Source/HistoryTest.zip" mce_href="http://techconsulting.vpscustomer.com/Source/HistoryTest.zip"&gt;&lt;span style=""&gt;http://techconsulting.vpscustomer.com/Source/HistoryTest.zip&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;And a working sample is available at –&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://techconsulting.vpscustomer.com/Samples/HistoryTest/Default.aspx" mce_href="http://techconsulting.vpscustomer.com/Samples/HistoryTest/Default.aspx"&gt;&lt;span style=""&gt;http://techconsulting.vpscustomer.com/Samples/Default.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;

&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7669836" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/History+support/default.aspx">History support</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/.NET+FAQ/default.aspx">.NET FAQ</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/JQuery/default.aspx">JQuery</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Sequence Aspnet Ajax Calls </title><link>http://weblogs.asp.net/anilkasalanati/archive/2009/03/18/sequence-aspnet-ajax-calls.aspx</link><pubDate>Wed, 18 Mar 2009 08:31:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6974102</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=6974102</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2009/03/18/sequence-aspnet-ajax-calls.aspx#comments</comments><description>&lt;p&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Most of you working with asp.net AJAX update panels&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;already know that the there is limitation with respect to multiple requests at the same time.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Following section taken from Dino’s blog(http://msdn.microsoft.com/en-us/magazine/cc163319.aspx#S6) on MSDN best describes the working of asp.net AJAX and the problem.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;One AJAX Postback at a Time&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Since partial rendering lets you add AJAX functionality to classic ASP.NET 2.0 pages without modifying the programming model, the server lifecycle of the page is fully preserved. This holds true for postback events, loading, rendering, and view state. The amount of traffic for a typical partial rendering call is smaller than that for a classic ASP.NET call, but the size of the view state is a constant and can only be reduced through page-specific programming techniques.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;With partial rendering, an ASP.NET page gains the continuous feel of an AJAX page, but maintains the traditional user interface. Seen from the client-side, a partial rendering page behaves as if it is part of a single, sequential UI. Only one operation can be pending at a time, even when two concurrent operations are possible from a business viewpoint.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Imagine you have a page that displays any sort of information about a customer. This page contains two buttons—one for downloading order information and one for displaying customer details. From a pure business perspective, there's nothing preventing the user from clicking the two buttons in sequence to generate two successive requests, with the second request starting before the first has completed. The two requests need the same input—the customer ID—and both are read-only, meaning there is no danger of interfering with the status of the back-end database. Nevertheless, these two calls can't run concurrently in a partial-rendering page because partial rendering is based on the classic ASP.NET programming model—each request returns markup that includes an updated view state for the whole page. If you let two requests run concurrently, you put the consistency of the page's view state at risk. Two requests sent in quick sequence send the same view state to the server, but each request returns a different view state, updated for the controls involved with the processing of the request. This means the last request to return overwrites the changes made when the first request returned. Thus, partial-rendering AJAX pages still work according to the stop-and-go pattern.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;To avoid these types of problems, the page request manager object automatically kills any request that is pending when a new request is placed. In light of this behavior, it is extremely important that you disable the entire UI in partial rendering pages. This is to ensure that users can't interact with the whole page for the duration of the current request. As you can see, this statement directly contradicts one of the key benefits of AJAX—asynchronous interaction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;So the basic problem with this is that in complex applications with multiple buttons(postback elements) in an update panel the user can always trigger two post backs. We can prevent that from the front end using some UI behaviours like hiding and showing behaviours but it is still very difficult to prevent multiple posts happening. When multiple posts happen for a mission critical application it is mandatory that we override the last win policy which AJAX.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Application&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;In this example I have added two buttons to the update panels and both the buttons just wait for 3 seconds before populating the corresponding label.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;When you click both the button in a span of 3 secs then only the latest click would work. But the following code will ensure that both the clicks work.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: rgb(163, 21, 21); background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;script&lt;/span&gt;&lt;span style="font-size: 10pt; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; &lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="text/javascript"&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;Sys.Application.add_load(ApplicationLoadHandler)&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;function&lt;/span&gt;&lt;span style="font-size: 10pt; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; ApplicationLoadHandler(sender,
args) {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;if&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack())
{ &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;function&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; InitializeRequest(sender, args) { &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;var&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; prm = Sys.WebForms.PageRequestManager.getInstance();&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;var&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; eventId = args._postBackElement.id; &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;if&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; (prm.get_isInAsyncPostBack()) {&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;setTimeout(&lt;span style="color: rgb(163, 21, 21);"&gt;"Wait('"&lt;/span&gt;
+ eventId + &lt;span style="color: rgb(163, 21, 21);"&gt;"')"&lt;/span&gt;,
2000);args.set_cancel(&lt;span style="color: blue;"&gt;true&lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;function&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; Wait(eventId) {__doPostBack(eventId, &lt;span style="color: rgb(163, 21, 21);"&gt;''&lt;/span&gt;);
&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: rgb(163, 21, 21); background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;script&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif';" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif';"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 12pt;" lang="EN-GB"&gt;The way it works is we
need to add the InitilizeRequest handler to the Page Request Manager. In the
Initialize Request method we detect whether there is an async post back in
progress if yes then we wait for 2 sec and do the post after that.The Timer
function in asp.net AJAX also has a similar code to handle multiple timers on a
single page.Following are the code snippets from Timer class.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 12pt;" lang="EN-GB"&gt;&lt;/span&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;/p&gt;&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;function&lt;/span&gt;&lt;span style="font-size: 10pt; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; Sys$UI$_Timer$_raiseTick() {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif';" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt;" lang="EN-GB"&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif';" lang="EN-GB"&gt; &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif';" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;this&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;._startTimer();&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;if&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; ((&lt;span style="color: blue;"&gt;this&lt;/span&gt;._pageRequestManager === &lt;span style="color: blue;"&gt;null&lt;/span&gt;) || (!&lt;span style="color: blue;"&gt;this&lt;/span&gt;._pageRequestManager.get_isInAsyncPostBack())){
&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;this&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;._doPostback();&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;this&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;._postbackPending = &lt;span style="color: blue;"&gt;false&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;} &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;else&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; {&lt;span style="color: blue;"&gt;this&lt;/span&gt;._postbackPending = &lt;span style="color: blue;"&gt;true&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;function&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; Sys$UI$_Timer$_handleEndRequest(sender, arg){ &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;var&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; dataItem = arg.get_dataItems()[&lt;span style="color: blue;"&gt;this&lt;/span&gt;.get_id()];&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;if&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; (dataItem){&lt;span style="color: blue;"&gt;this&lt;/span&gt;._update(dataItem[0],dataItem[1]);
&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;if&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt; ((&lt;span style="color: blue;"&gt;this&lt;/span&gt;._postbackPending === &lt;span style="color: blue;"&gt;true&lt;/span&gt;) &amp;amp;&amp;amp; (&lt;span style="color: blue;"&gt;this&lt;/span&gt;._pageRequestManager
!== &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&amp;amp;&amp;amp;(&lt;span style="color: blue;"&gt;this&lt;/span&gt;._pageRequestManager.get_isInAsyncPostBack()
=== &lt;span style="color: blue;"&gt;false&lt;/span&gt;)){ &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;this&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;._postbackPending = &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; color: blue; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;this&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;._doPostback(); &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;

&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: 'Times New Roman','serif'; background: none repeat scroll 0% 0% silver;" lang="EN-GB"&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;This is not tested for all the scenarios but you can extend the idea&lt;/font&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;font face="Calibri" size="3"&gt;You can download the code from here (&lt;/font&gt;&lt;a href="http://sequenceaspnetajax.codeplex.com/" mce_href="http://sequenceaspnetajax.codeplex.com/"&gt;&lt;font face="Calibri" size="3"&gt;http://sequenceaspnetajax.codeplex.com&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt; 
&lt;/p&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p mce_keep="true"&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6974102" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/asp.net+prioritize+update+panel+page+request+manager+sequence+requests/default.aspx">asp.net prioritize update panel page request manager sequence requests</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/.NET+FAQ/default.aspx">.NET FAQ</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Atlas/default.aspx">Atlas</category></item><item><title>Charting controls</title><link>http://weblogs.asp.net/anilkasalanati/archive/2009/01/27/charting-controls.aspx</link><pubDate>Tue, 27 Jan 2009 18:01:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6861835</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=6861835</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2009/01/27/charting-controls.aspx#comments</comments><description>
&lt;p&gt;One of the requirement which we always got was to display 3D graph and charts and there are some solutions which render 3D flash charts like &lt;a href="http://www.fusioncharts.com/LiveDemos.asp" mce_href="http://www.fusioncharts.com/LiveDemos.asp"&gt;FusionCharts&lt;/a&gt;. Another option would be to use the new charts control launched by asp.net team. Please refer &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx%21" mce_href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx!"&gt;here&lt;/a&gt;. Following is an important note on the working of charts from Scotts &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx"&gt;blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Notes:&lt;/b&gt;&lt;br&gt;

&lt;i&gt;"At runtime the server control generates an image (for example a .PNG file) that is referenced from the client HTML of the page using a &lt;img&gt; element output by the &lt;asp:chart&gt;&lt;/asp:chart&gt; control.  The server control supports the ability to cache the chart image, as well as save it on disk for persistent scenarios.  It does not require any other server software to be installed, and will work with any standard ASP.NET page."&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Another option would be use the open source Google Map Api's .Please click &lt;a href="http://code.google.com/apis/visualization/documentation/gallery/piechart.html"&gt;here&lt;/a&gt;. I would say but the best option at the present for 2d charts is Google.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6861835" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/asp.net+charts+3d+images+Google+Charts/default.aspx">asp.net charts 3d images Google Charts</category></item><item><title>Steve Ballmer's note at CES</title><link>http://weblogs.asp.net/anilkasalanati/archive/2009/01/10/steve-balmers-note-at-ces.aspx</link><pubDate>Sat, 10 Jan 2009 10:34:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6829456</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=6829456</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2009/01/10/steve-balmers-note-at-ces.aspx#comments</comments><description>
&lt;p&gt;&amp;nbsp;Steve's first CES key note . &lt;/p&gt;
&lt;p&gt;Please click &lt;a href="http://www.microsoft.com/presspass/events/ces/keynote.aspx?initialVideo=fullKeynote" mce_href="http://www.microsoft.com/presspass/events/ces/keynote.aspx?initialVideo=fullKeynote"&gt;here&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6829456" width="1" height="1"&gt;</description></item><item><title>Azure - Red Dog video</title><link>http://weblogs.asp.net/anilkasalanati/archive/2009/01/03/azure-red-dog-video.aspx</link><pubDate>Sat, 03 Jan 2009 18:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6815697</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=6815697</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2009/01/03/azure-red-dog-video.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;A funny video on Microsoft Azure(Red Dog).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;http://uk.youtube.com/watch?v=NZO9YE1ZvqE&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6815697" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/red+dog+azure/default.aspx">red dog azure</category></item><item><title>Script # Framework</title><link>http://weblogs.asp.net/anilkasalanati/archive/2008/12/30/script-framework.aspx</link><pubDate>Tue, 30 Dec 2008 12:41:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6809022</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=6809022</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2008/12/30/script-framework.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Excellent framework to convert C# code to javascript developed by Nikhil.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://projects.nikhilk.net/ScriptSharp/Conceptual-What" mce_href="http://projects.nikhilk.net/ScriptSharp/Conceptual-What"&gt;http://projects.nikhilk.net/ScriptSharp/Conceptual-What&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6809022" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/javascript/default.aspx">javascript</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Script+_2300_/default.aspx">Script #</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/c_2300_/default.aspx">c#</category></item><item><title>CLR 4.0 updates released at PDC 2008</title><link>http://weblogs.asp.net/anilkasalanati/archive/2008/12/29/clr-4-0-updates-released-at-pdc-2008.aspx</link><pubDate>Mon, 29 Dec 2008 09:03:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6808618</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=6808618</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2008/12/29/clr-4-0-updates-released-at-pdc-2008.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Nice updates to the CLR&amp;nbsp; in the next release. Please view the video at http://channel9.msdn.com/pdc2008/pc49.&lt;/p&gt;&lt;p&gt;If you want to play around with VS 2010 and .NET 4.0, you can download the CTP from &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=922b4655-93d0-4476-bda4-94cf5f8d4814&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=922b4655-93d0-4476-bda4-94cf5f8d4814&amp;amp;displaylang=en" target="_blank"&gt;here&lt;/a&gt;, and can provide your feedback &lt;a href="https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790" mce_href="https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790" target="_blank"&gt;here&lt;/a&gt;. &lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6808618" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/CLR+4.0/default.aspx">CLR 4.0</category><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/PDC+2008/default.aspx">PDC 2008</category></item><item><title>Windows Workflow Service Logic for CSF</title><link>http://weblogs.asp.net/anilkasalanati/archive/2008/03/29/windows-workflow-service-logic-for-csf.aspx</link><pubDate>Sat, 29 Mar 2008 22:38:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6047013</guid><dc:creator>anil.kasalanati</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/anilkasalanati/rsscomments.aspx?PostID=6047013</wfw:commentRss><comments>http://weblogs.asp.net/anilkasalanati/archive/2008/03/29/windows-workflow-service-logic-for-csf.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;This is my first blog so will start with a winning design. Having spent&amp;nbsp;a couple of years in Telecom domain and with Microsoft Connected Services Framework 2.5, I thought of contributing by writing an open source 'Services logic using Windows workflow'. For most of you who are not aware what CSF is please refer to &lt;A class="" title="Connected Services Framework" href="http://www.microsoft.com/serviceproviders/solutions/connectedservicesframework.mspx" target=_blank mce_href="http://www.microsoft.com/serviceproviders/solutions/connectedservicesframework.mspx"&gt;About CSF&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Service Logic is the core part of any CSF solution as it controls the order in which the participants in the CSF Session will be called. The two most common sample provided by microsoft are using Biztalk Server Rules Engine and native C# based solution. Both these solution have their own disadvantages like Biztalk suffers with performance and datadriven capabilities and C# base solution is not datadriven. Hence it is very&amp;nbsp;essential to have&amp;nbsp;a service logic with data driven capabilties. So the ideal choice I made was a C# based web service with a&amp;nbsp;&amp;nbsp;Windows Workflow based rules Engine backend. The&amp;nbsp;benefits of windows workflow rules (apart from runtime being free) over Biztalk is that the rules engine database can have a custom schema. Microsoft provides a great flexibility by just providing the framework and allowing the solution designers to customize the database. Ofcourse some may argue that there might be performance issues as the rules are stored in Xml and the xml is quite huge. But the scalability it provides&amp;nbsp;in design cannot be argued. Another good thing about WF Rules Engine is that it comes with an open source RuleSet ToolKit to edit rules.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This solution has&amp;nbsp;made me a technical hero in the 'Microsoft Heroes Happen Here' competetion. Apart from the certificate I also got a DELL 1500 VOSTRO.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="Heroes Happen" style="WIDTH: 300px; HEIGHT: 300px" height=300 alt="Heroes Happen" src="http://webpileup.com/certificate.jpg" width=300 align=middle mce_src="http://webpileup.com/certificate.jpg"&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;The solution can be downloaded from &lt;A class="" title="Code Plex" href="http://www.microsoft.com/serviceproviders/solutions/connectedservicesframework.mspx" target=_blank mce_href="http://www.microsoft.com/serviceproviders/solutions/connectedservicesframework.mspx"&gt;Code Plex&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6047013" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/anilkasalanati/archive/tags/Windows+Workflow+Service+Logic+for+CSF/default.aspx">Windows Workflow Service Logic for CSF</category></item></channel></rss>