2011-09-20 19 views
1

にクリックされたaltough私はAsp.netページのタイムアウトボタンが更新パネル

<asp:TextBox ID="txtContent" runat="server" TextMode="MultiLine">Default Text</asp:TextBox> 
<asp:LinkButton ID="lbSend" runat="server" Text="Send" OnClick="lbSend_Click" /> 

<script type="text/javascript"> 
    //some javascript to click btnSave in update panel for every five minutes. 
</script> 

<asp:UpdatePanel ID="upSave" runat="server" Style="display: none;"> 
    <ContentTemplate> 
     <asp:Button ID="btnSave" runat="server" Text="Button" OnClick="btnSave_Click" /> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnSave" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

そして

protected void lbSend_Click(object sender, EventArgs e) 
{ 
    //Gets UserID from session and saves it to table A with txtContent 
} 
protected void btnSave_Click(object sender, EventArgs e) 
{ 
    //Gets UserID from session and saves it to table B with txtContent 
} 

すべての背後にあるコードのように見えるシンプルなブログのためのasp.netのページを持っています大丈夫です。私はフォームに記入し、lbSendまたはbtnSaveを使ってテーブルにコンテンツを挿入します。 JavaScriptはbtnSaveもクリックしています。しかし、約40分以上のtxtContentを埋めるのに時間がかかると、そのページは期限切れのようです。 lbSendをクリックすると、ページが非同期でリフレッシュされ、書いたものはすべて消えてしまいます。私がクリックすると、ページが眠って目を覚ますようなものです。また、lbSendを再度クリックすると正常に機能します。

btnSaveはサーバーとの通信を継続しているのに対し、この「スリープ」の理由は何ですか?そしてどうすればそれを防ぐことができますか?

+0

40分?!?テーブルAとBにはいくつのレコードがありますか?インデックスはどのように見えるのですか? –

+0

私は約40分はわかりませんが、私はそれを測定することができません。テーブルに問題はありません。私はテーブルがSQL Serverにあると言っているのを忘れていました。 – sevenkul

答えて

1

あなたはAjax投稿をしています。非同期ポストであるため、ブラウザーはうまく動いてしまい、エラーがない限り問題は発生しません。 Ajaxでない場合、ページ全体がリフレッシュされ、エラーを見たことがあります。フレンドリな形式でエラーを表示すると仮定します。

Ajaxを実装する際には、独自のエラーハンドラを実装して、エラーが発生したことをユーザに表示する必要があります。また、Ajaxリクエストが完了するまでユーザーがあなたのWebページを使用できないようにする、フローティングdivまたはダイアログを実装する必要があります。私は40分が簡単な挿入のために本当に悪いことを認識していますが、あなたのDBAが修正するために残しておきます。

フローティングdivまたはダイアログまたは「モーダルポップアップ」について説明します。 before_Ajax_send関数でそれを開き、after_Ajax_receive関数でそれを閉じたいとします。これらの関数の詳細については、Ajaxライブラリのドキュメントを参照してください。

このダイアログボックスを実装すると、アプリケーションが何かをしていることをユーザーに知らせるので、ユーザーエクスペリエンスが向上します。

これが役に立ちます。

+1

VS 2008 JavaScript Debugging by Scott Guthrie - http://weblogs.asp.net/scottgu/archive/2007/07/19/vs-2008-javascript-debugging.aspx –

+0

ありがとう、私はFireBugでデバッグすることで問題を解決しました。問題はJavaScriptでしたが、何らかのエラーが発生していませんでした。さらに、btnSaveをクリックするjavascriptは2日前に非常にうまく動作していました。これは次のようなものでした: 'var interval = setInterval(" updateCounter(); "、10 * 1000);'なぜ問題になったのか分かりません。私はsayacFonksiyonu()でupdateCounter()関数の名前を変更して解決しました。 – sevenkul

+0

後で私は、すべての問題の原因となったマスターページャで同じ名前のupdateCounter()を使用していることに気付きました。 – sevenkul

関連する問題