ASP.Netにサイトを構築していますが、最初にロードするときにブラウザのチェックを行う必要があります。セッション変数を待っているインフィルループのUpdatePanel
私はdocument.DocumentModeを使用してこれを行います。他の方法について教えてください。私はそれらを知っていますが、動作しません。
マスターページが読み込まれると、次のようなJavaScriptが呼び出されます。これにより、セッション変数が別のページに設定されます。私が抱えている問題は、ページが無限ループに陥ることがあるということです。私は最初に私のサイトを開いて、それをサーバーに再発行することによってそれを再現することができます。私はページを更新すると、それは私が考えています何
...それはしかしまた、ランダムにそれをしないし、それを修正する唯一の方法は、ブラウザを閉じて再度開くことです。..無限ループにfunction myFunc() {
var xhr = new XMLHttpRequest();
var docmod = document.documentMode;
xhr.open("GET", "setResponseHeader.aspx?mode=" + docmod);
xhr.send();
var mySesh ="<%= Session["sessResp"] %>";
if (mySesh == "")
{
__doPostBack('<%= AJAXUpdPan %>', '');
}
}
を起動します何とか5つのポストバックが失敗して停止した後にトリガするカウンタを配置しますが、私のjavascriptのスキルはそれを傷つけるものではありません。
EDIT ここ
<body onload="myFunc()">
<form runat="server">
<div class="page">
は、それが働いている更新パネル
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<asp:UpdatePanel ID="AJAXUpdPan" runat="server">
<ContentTemplate>
<p align="right">
You are currently logged in as <asp:Label ID="lbl_CurrentUser" runat="server" Text="User"></asp:Label></p>
</ContentTemplate>
</asp:UpdatePanel>
で次のようにはJavaScriptが呼び出される...ちょうど、時にはそれがないようです..私私はそれがセッション変数を使用することで問題であると思われ始めています。私がサイトを公開すると、セッションやその何かが破壊されますか?私はセッションが時々タイムアウトしている可能性があるので、ランダムな問題を引き起こしていると思います。セッションタイムアウトを30分から3600分にしました。明日は動作するかどうかテストします。 。
このコードは、ページの作成時に実行する必要があります。これは単にdocumentModeを取得し、queryStringを介して変数を設定するsetResponseHeader.aspxに送信することを意味します。一方、updatePanelはリフレッシュしています。セッション変数が設定されると、プロセスは中断します。私はあなたが投稿したものについて何も知らない – Matt
私は間違った答えには申し訳ありません!私は1つのモードの質問があります:このJavaスクリプトのコードはAJAXUpdPanの中にあるかどうか?私はAJAXUpdPanの外の関数であれば、Session ["sessResp"]を変更してもポストバックを処理してもmySeshの値は更新されません。 – IceN
いくつかの詳細については、編集を確認してください..それは意図したとおりに現在動作します。しかし、私がサイトの更新を公開すると、それはうんざりしてしまいます。 – Matt