3

コードに関しては問題ありません。問題なく動作しています。しかし、このカウントダウンの代替方法を探しています。

ここにコードがあります

現在のページ.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label2" runat="server" Text="You will be redirected in..."></asp:Label>
            <asp:Timer ID="Timer1" runat="server">
            </asp:Timer>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:Label ID="Label1" runat="server" Text="10"></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>
    </form>
</body>
</html> 

コード ビハインド ファイル

using System;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Timer1.Enabled = true;
            Timer1.Interval = 1000;
            Timer1.Tick += new EventHandler<EventArgs>(Timer1_Tick);
        }
        void Timer1_Tick(object sender, EventArgs e)
        {
            int i=(Convert.ToInt16(Label1.Text));
            i = i - 1;
            Label1.Text = i.ToString();
            if (i<0)
            {
                Timer1.Enabled = false;
                Response.Redirect("TargetPage.aspx");
            }
        }
    }
}

私が探しているのは、代替方法だけです。

4

2 に答える 2

2

タイマーがサーバー側から何も必要としない場合は、おそらく JQuery またはプレーンな Javascript を使用してクライアント側でタイマーを実行する必要があります。これにより、クライアントとサーバーの通信が低く (0) 維持されます。

確認する必要がある何かが背後で起こっている場合は、JQuery/Javascript + Web サービスまたは Web メソッドまたは単純な ashx ハンドラーに変更する必要があると思います。あなたが提示したものは機能しますが、これをページ機能の外に置いておく方がきれいだと思います.

多くのクライアント側タイマーがあります: http://code.cyntaxtech.com/plugins/jquery-timer/demo またはこのjQuery カウントダウン タイマー

于 2012-10-08T17:17:32.287 に答える
2

C# コードを使用してリダイレクト先を動的に指定する必要がない限り、純粋に JavaScript のクライアント側メソッドを実装できます。ウィンドウを目的のページに移動させる単純な JavaScript 関数にすることができます。

于 2012-10-08T17:04:01.927 に答える