2010-12-05 5 views
0

部分的な更新か完全な更新かに関わらず、asp.netサーバーへのすべてのポストバックにより、全ページのライフサイクルが実行されます。つまり、page_preinit、page_init、page_load関数は、実際に表示したいものを実行する前に実行されます。asp.netのすべてのポストバックはページサイクル全体を実行する必要がありますか?

場合によっては、小さなものを変更する必要があるかもしれませんが、ページライフサイクル全体の実行が遅くなることがあります。

助けてください。どんなテクニックですか?

答えて

2

ページ全体をリロードせずに、JavaScriptを使用してクライアント上のページの一部のみを更新することができます。ここはMicrosoft's take on itです。

+0

こんにちはダグラス、答えに感謝します。しかし、javascriptがサーバーと通信する必要があっても、フルページのライフサイクルを実行することになります。何か不足していますか? –

+1

-1(私ができれば)ある問題を別の問題に置き換える。 –

+1

Dude、ajaxを使って問題を別の問題に置き換える方法は?最近入手可能なライブラリを使用するのは簡単ではなく、優れたユーザーエクスペリエンスを提供します。あなたのコメントは役に立ちません。 –

4

はここにいくつかの助けです:

は、あまりにも多くのコードを使用してページのライフサイクルイベントに過負荷をかけないでください。

ポストバック、非同期ポストバック、または通常のリクエストの場合は、必要なコードのみを実行するようにメソッドをチェックインします。

コードを実行している場合は、小さなポストバックごとに実行するべきではありません。それはあなた自身の間違いです。ライフサイクルは、これまでに何をする必要があるかを実行できるようにするためのものです。不要なコードを実行する場合は、Microsoftを責めないでください。

+0

ポストバックや非同期のポストバックやリクエストを取得するとコード自体が大きくなるかどうかを確認します。 –

+2

@Suraj Shrestha - あなたのロジックは頭がおかしい。いくつかの 'if()'テストは、未使用のコントロールツリーを構築したり、送信していないコントロールにデータをバインドしたりするのに比べて、何も*絶対に何もしません。 –

0

ページイベントのライフサイクルは、asp.netフォームの仕組みにとって基本的なものであり、問​​題を解決するために間違ったツールを使用して特定のURL /リクエストに対してhttpハンドラを記述しない限り避けることはできません)。

しかし、asp.netページのイベントサイクルは遅くはない - 非常に高速です。これらのイベントにコードを追加して速度を落とすための何かをしていない限り。ポストバックが遅い場合は、ページのライフサイクルを避けようとするのではなく、進行中のアクティビティをプロファイリングするか、そうでなければ何が起こっているのかをデバッグする必要があります。

ASP.net MVC(asp.net webformsと並んでライブできる)に移行することができます。これは、より簡単なイベントモデルを扱うことができます。これは、asp.netのページライフサイクルイベントをロードするのと同じ方法で、フィルタを使用して余分なコードでオーバーロードすることはできません。 asp.net mvcに移動するだけでasp.netページの読み込み時間のパフォーマンス上の問題を解決するには、古い当座預金の残高を得ることができないときに、新しい当座預金口座を開設するようなものです...一時的な救済:) :)

関連する問題