469,934 Members | 1,873 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,934 developers. It's quick & easy.

server-side timer vs. meta refresh

After much effort, it doesn't seem possible to redirect the user to a new
page after 10 seconds by using a server-side timer. I am now using the
following meta statement to accomplish the same thing:

<META HTTP-EQUIV="refresh" content="10;URL=Form_Welcome.aspx">

This seems to work fine, but I now have three concerns because I thought it
was supposed to be possible to do everything in C#.
1. Note that Visual Studio lets the developer drag and drop a timer onto the
web form, which now seems like a pointless feature.
2. Will server-side code know how to handle the redirection caused by the
META tag as well as if I had used C#?
3. I manually edited the .aspx file, which means that my code is not as
clean and is harder to maintain.

Jim
Nov 17 '05 #1
4 6022
Well it is possible, but this can be easier and cleanly accomplished on the
client side since you are implying that after some event of time period on
the client, it should redirect itself somewhere else. This is not really a
server side concern, but rather a client side issue, hence the solution
should probably be a client side solution.

It isn't pointless. It just doesn't work cleanly in your situation. Here's
one scenario where it comes in. If you want clean up on the server after a
scheduled amount of time, a timer is a very good avenue. Notice, this would
be a server side solution not requiring client-side interference.

The redirection is handled just as if it were server transfer or redirect.

:-( that's the disadvantage of using the inline code method.

--
-----------
Got TidBits?
Get it here: www.networkip.net/tidbits
"Jim Hammond" <jh******@postalinnovations.com> wrote in message
news:OQ**************@TK2MSFTNGP10.phx.gbl...
After much effort, it doesn't seem possible to redirect the user to a new
page after 10 seconds by using a server-side timer. I am now using the
following meta statement to accomplish the same thing:

<META HTTP-EQUIV="refresh" content="10;URL=Form_Welcome.aspx">

This seems to work fine, but I now have three concerns because I thought it was supposed to be possible to do everything in C#.
1. Note that Visual Studio lets the developer drag and drop a timer onto the web form, which now seems like a pointless feature.
2. Will server-side code know how to handle the redirection caused by the
META tag as well as if I had used C#?
3. I manually edited the .aspx file, which means that my code is not as
clean and is harder to maintain.

Jim

Nov 17 '05 #2
Jim Hammond wrote:
After much effort, it doesn't seem possible to redirect the user to a new
page after 10 seconds by using a server-side timer. I am now using the
following meta statement to accomplish the same thing:

<META HTTP-EQUIV="refresh" content="10;URL=Form_Welcome.aspx">

This seems to work fine, but I now have three concerns because I thought it
was supposed to be possible to do everything in C#.
1. Note that Visual Studio lets the developer drag and drop a timer onto the
web form, which now seems like a pointless feature.
There are uses for timers on the server-side. It doesn't happen to fit
our application well, however.
2. Will server-side code know how to handle the redirection caused by the
META tag as well as if I had used C#?
I'm not sure what you're asking... The server doesn't really know
anything about the redirection. The browser simply makes a request to
the URL specified in meta tag. If the URL is pointing back to the same
server, then the server will be aware of it. If the URL points
somewhere else, then the server will never know.
3. I manually edited the .aspx file, which means that my code is not as
clean and is harder to maintain.
You can handle the meta tag using C# code-behind techniques by giving
the meta tag an id attribute and a runat="server" attribute. Then in
the code-behind, declare an HtmlGenericControl in your Page class with
the same name as the meta tag's id attribute.

Now you can add the HTTP-EQUIV and content attributes using C# code.
This will let you dynamically control how long the refresh time is, and
where the redirection will go. You could also remove the meta tag
altogether (if you don't want the redirection) by setting the Visible
property to false.

Finally you can use C# to inject Javascript into the page (using
RegisterClientScriptBlock() and/or RegisterStartupScript()) which would
perform the refresh, if you'd rather not use the meta tag - this would
give you additional possibilities for handling the redirection.

Jim


Controlling the client in a disconnected web browser model is
significantly different from controlling the client in a Windows
application or dedicated, connected client application model.

--
mikeb

Nov 17 '05 #3
In article <uX**************@TK2MSFTNGP10.phx.gbl>, mikeb wrote:
Jim Hammond wrote:

3. I manually edited the .aspx file, which means that my code is not as
clean and is harder to maintain.


You can handle the meta tag using C# code-behind techniques by giving
the meta tag an id attribute and a runat="server" attribute. Then in
the code-behind, declare an HtmlGenericControl in your Page class with
the same name as the meta tag's id attribute.


Or in this case, since it's an HTTP-EQUIV, you can just add the header
directly and forget about the meta tags altogether.

Response.AppendHeader("Refresh", "3; URL=/some/url/here")
Although, in the general case, I don't really see manually editing the
..aspx file as A Bad Thing.

--
David
dfoster at
hotpop dot com
Nov 17 '05 #4
David wrote:
In article <uX**************@TK2MSFTNGP10.phx.gbl>, mikeb wrote:
Jim Hammond wrote:
3. I manually edited the .aspx file, which means that my code is not as
clean and is harder to maintain.


You can handle the meta tag using C# code-behind techniques by giving
the meta tag an id attribute and a runat="server" attribute. Then in
the code-behind, declare an HtmlGenericControl in your Page class with
the same name as the meta tag's id attribute.

Or in this case, since it's an HTTP-EQUIV, you can just add the header
directly and forget about the meta tags altogether.

Response.AppendHeader("Refresh", "3; URL=/some/url/here")
Although, in the general case, I don't really see manually editing the
.aspx file as A Bad Thing.


Good call.

I'd agree that editing the aspx file is not necessarily a bad thing - in
fact, it would be my preference if the refresh should be there
unconditionally.

The Response.AddHeader() approach would be the best for dynamically
adding the redirection.

--
mikeb

Nov 17 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

6 posts views Thread by Nathan Sokalski | last post: by
9 posts views Thread by Grim Reaper | last post: by
14 posts views Thread by Developer | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.