ページをロードする場合、プラグインはトリックを行いません
ページが読み込まれるまでブロックする場合は、コンテンツブロッカー要素をページの一部にし、ページの読み込み後に常に実行されるプラグインによって生成されないようにする必要があります。ある時点か別の時点で。
<body>
...
<!-- make it last -->
<div id="blocker">
<div>Loading...</div>
</div>
</body>
そして、CSSに残りを任せます
#blocker
{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: .5;
background-color: #000;
z-index: 1000;
}
#blocker div
{
position: absolute;
top: 50%;
left: 50%;
width: 5em;
height: 2em;
margin: -1em 0 0 -2.5em;
color: #fff;
font-weight: bold;
}
そして、ブロッキングをクリアするJavascript:
$(function(){
$("#blocker").hide();
});
これは、上記のコードを使用した実際の例です。非常に単純なドキュメントであるため、タイムアウト時にブロッカーを削除します。
重要なお知らせ
しかし、おそらくあなたはこれを正しい方法で理解していません。別の話なので、サーバーにポストバックするときに既存のページをブロックしたいと思うかもしれません。この場合、プラグインで十分であり、unloadウィンドウイベントとディスプレイブロッカー要素で実行する必要があります。これにより、既存のページがデータをポストバックしている間、およびブラウザーが新しいコンテンツの受信を開始する前にブロックされます(これは前に示した手法でブロックできます)。
問題はブラウザがサーバーの応答を待っていることのようです
自分でピンポイントで特定できないため、わかりにくいです。しかし、問題はブラウザがサーバーの応答を待っていることだとしましょう。そして、あなたが言うように、セッションのロードは遅いです。2つのこと:
- DB呼び出しを最適化して、これらのメニューデータをより迅速に取得します(本当に時間がかかる場合は、プロファイラーで確認しましたか?)
- 読み込み中のコンテンツを表示し、リダイレクトを実行する
静的なデフォルトのHTMLページを用意します。
- METAリフレッシュタグを使用する-古いブラウザやjavascriptのないブラウザにとってより安全
- javascript-最近のページに適しています。特に、ページでJavascriptを使用しているため(
__doPostback誰でも)
あなたの最善の策は両方の組み合わせであるようです。しかし、一度に一歩ずつ進んで、それがより良いかどうかを確認してください。
もう一つ。最初の応答(アプリケーションの開始)を待つのに時間がかかることを知っています。それは多くのページでそうします。しかし、データはまだ表示されていないため、ユーザーはデータに害を及ぼすことができないため、通常、人々は実際には気にしません。ユーザーが同じボタンを数回クリックする傾向があるため(たとえば、データを作成/更新する場合)、ページを使用するときに応答時間が長い場合はさらに悪化します。それははるかに有害です。
また、Asp.netアプリケーションの起動とセッションの読み込みを混同している可能性があります。アプリケーションを最初に起動するときは、アプリケーションをコンパイルして起動する必要があるため、サーバーが応答するのにはるかに長い時間がかかります。これにはかなりの時間がかかる場合があります。そのためのいくつかの回避策があります。これには、アプリケーションのリサイクル時間の変更や、アプリケーションが非アクティブな状態が長く続く間、アプリケーションを存続させるためだけにアプリケーションに小さな要求を行う個別のハートビートサービスが含まれます。
また、開発中のページがデスクトップマシンで実行されていることも考慮に入れる必要があります。サーバーが高速かどうかを知っておく必要があります。
したがって、おそらくそれはセッションの作成ではなく、アプリケーションの起動です。ブラウザでページを開いてページが完了するのを待ってから、ブラウザを閉じてもう一度開いて(新しいセッションが作成されるように)、アプリケーションにアクセスして、違いを確認する必要があります。読み込みが速い場合は、セッションの障害ではなく、.netFrameworkがアプリケーションをコンパイルする必要がある場合のアプリケーションの起動です。
最初に問題を定義してから、軽減を開始します。