1。ASPキャッシュとは何ですか/なぜキャッシュ
実際、ASPテクノロジーの初期段階でWebサイトが確立されると、ASP Dynamic Webテクノロジーによってもたらされる利便性と、無料の変更と無料のHTTPコントロールがもたらされると感じるかもしれません。しかし、アクセスボリュームの増加に伴い、サイトのアクセス速度が遅くなり、IISが再起動したことが間違いなくわかります。そのため、パフォーマンスの向上を伴うデータベースの変更、インデックスの確立、ストレージ手順の作成など、ASPプログラムを最適化する必要があります。これらの手段の一部はコスト圧力を上げる必要はありませんが、コスト圧力(SQLへのクラスターアクセスなど)の一部であり、その効果は必ずしもそうではありません。
Webアクセスのプレッシャーに直面して、最も経済的な方法は、キャッシュ最適化テクノロジーを使用してWebのサービス圧力を緩和することだと思います。
通常、Webアクセス量の増加は、次のリソース需要の急速な成長を意味します。
1.ネットワークカードトラフィックの増加には、より多くのCPU処理ネットワークトラフィックとネットワークI/Oスレッドを消費する必要があります。
2.データベース接続をより頻繁に開閉する/閉じる必要があります(データベーステクノロジーが使用される場合 - ASPはデータベースをデータストレージとして使用します)、リソースを真剣に消費するものの数、およびの競合リソースによって引き起こされるデッドロックネットワークI/OまたはCPU消費を増やすトランザクション。
3.セッションを使用すると、IISはステータスを維持するためにより多くのメモリを消費し、メモリ消費は物理的なメモリと補助メモリ間の頻繁な交換を引き起こし、コードの実行を停止します
4.アクセスのタイムリーな応答により、Webページアクセスの障害が発生し、ユーザーが更新され、CPU、メモリ、その他のリソースのニーズが悪化します。
実際、通常のWebアプリケーションを考慮すると、動的コードの実行は何度も不要です。
2。ASPキャッシュの分類
許可なしに要約すると、ASPのキャッシュは2つのカテゴリに分けることができます。
1。ファイルキャッシュ
SO -CALLED FILE CACHEは、一定期間、特定のASPの特定の実行が大きく変更され、クライアントが大幅に変更されます。 Webリダイレクトからテクノロジーへの静的ファイルにアクセスして、CPU、データベースリソースの削減のニーズを満たすことができます。たとえば、多くのフォーラムは、ステッカーに返信するときに静的ファイルを再生成し、Donews.comのフォーラムなどをリダイレクトします。静的な静的側には、副作用(利点)があります。これは、Googleなどの検索エンジンで簡単に含めることができます。この技術を採用しているSO -Caled Pressリリースシステムが採用されています。
2。ファイルフィルムブレイクキャッシュ
SO -Caled File Cacheは、データの一部(通常、リソースを消費するために消費する必要がある大規模なデータベースクエリ)にも基づいています。ファイルの形式のデータ。データベースの負担が増加しないように、ファイルを読み取ることができます。たとえば、通常、いくつかのデータをXML形式で保存し、XSLTテクノロジーを使用してディスプレイを実装します(XML処理には通常、大量のCPUリソースが必要なため、通常、IEはクライアントにXMLを直接読み取り、顧客のCPUで処理します)。これがCSDNのフォーラムの処理方法です。
3。メインメモリキャッシュ
さらに、メモリ内のキャッシュを扱うことを検討し、メモリにタイムリーに応答する必要があるコンテンツを保存することもできます。多数のアクセスニーズがいくつかの小さなページまたはメインストレージに集中している場合、メインメモリキャッシュを使用してWebアクセスパフォーマンスを大幅に改善したいと思います。
3.キャッシュを達成/使用する方法
キャッシュを実装するには、次の問題を考慮する必要があります。
1.短時間でどのページが変更されませんか?
独自のサイトを分析してください。多くのページがあります。たとえば、サイトには通常、これらの列がサイトメンテナンス担当者の特定の時間に公開されています。これらのページは、静的ファイルを使用したキャッシュに適しています。実際、SO -Caled Pression -Releaseシステムが完了しているため、これらのシステムのアイデアを参照して、元の動的ASPページを変換することもできます。
2。これらのページは、すべての訪問に対して生成され、同じロジックを生成します(つまり、訪問者を区別するのではなく)。
ニュースや情報などのコラムを除いて、すべての訪問者はインターフェイスを見て、フォーラムやその他の消費リソースなどのリソースの適用は一般に統一ロジック生成として設計できます(同じ投稿、Zhang SanliとSisiは同じです)。また、サーバーの処理能力、つまり処理用のクライアントブラウザに加えて、データを破壊し、スクリプトテクノロジーを使用することを検討することもできます。
3.キャッシュのコストと収穫を使用します。
主にスペースの変更の時間(応答)。キャッシュテクノロジーを使用して、Webサーバーの応答能力を向上させるために頻繁に必要なコンテンツを事前に処理し、さらに重要なことに訪問者の好意を獲得します。
価格は、Webスペースの需要が増加し、アクセス効果に影響を与える可能性があることです。
しかし、適切なキャッシュは欠点よりも大きいと思います。
4。これらの場所でキャッシュを使用する代わりに
ダイナミッククエリページ、各人のクエリコンテンツは異なるため、ディスプレイの結果が同じではないため、クエリ結果キャッシュを生成する可能性は低いため、キャッシュはより複雑で、キャッシュ利用率の下部にあるため、管理コストは1,000クエリキーワードで、これらのキーワードの管理に対応することも面倒です)。
第4、インスタンス分析
提案フォーラムの元のレイアウトが次のとおりであるとします。
ルートディレクトリ:
Default.aspホームページ、一般的にエッセンス、推奨など
ListBorad.aspこのファイルは、すべての列の名前と紹介をリストします。
ListThread.aspファイルは、すべてのステッカーを示すパラメーターを搭載しておらず、特定のピースのすべてのステッカーを表すためにMainBidを運びます。特定の列のポストを示すためにSubbidが運ばれている場合。ページパラメーターを携帯してトピックのパジネーションを示す場合。
ViewThread.aspは、特定のステッカーコンテンツをリストします。投稿はスピーチとして表示され、すべてがステッカーの後ろにリストされていると仮定します。 IDパラメーターは、表示される投稿です。
Reply.aspは特定の投稿に応答し、パラメーターIDを携帯して特定の投稿に応答します
他の議論はありません。
上記では、それらのすべてが元のASP/PHPを使用して行われた場合、ほぼすべてのASPファイルの実行にはデータベース操作、頻繁なクエリ、および複数のクエリが必要であることがわかります。クエリデータベースが最終的にパフォーマンスの低下をもたらし、応答速度が低下し、訪問者への閲覧の影響が遅いことがWebの品質を助長しないことが知られているはずです。さらに重要なことに、AとBの2人について、IDが一貫している場合、ViewThread.aspなどにアクセスしましたが、多くの場合、同じコンテンツが表示されます(ブラウザで受信したHTMLコードはほぼ同じです)が、これについては、同じコンテンツで、サーバーはデータベース接続を開き、クエリ、レコードの読み取り、およびレコードとデータベース接続が閉じられていることを示す必要があります。エッセンスエッセンスエッセンスより多くの人々がより多くの人々からアクセスされる場合、最終結果は、これらの人々がサーバーリソースを悪化させることです。実際、同じコンテンツの重複労働は、キャッシュテクノロジーで最適化できます。例えば:
repy.aspのコンテンツを送信した後、viewthread_xxxx.htmなどの静的HTMLファイルに静的コンテンツを生成するために、静的関数を呼び出し、次にviewthread.aspにアクセスすると、システムは自動的に自動的にリダイレクトされます対応する静的ファイルViewThreadxxx.htm。このようにして、投稿が最新のものではない場合は、新しい提出物が常に最新のものになります。
ListBorad.aspも静的を実装できます。運ばれる可能性のあるパラメーターを分析し、キャッシュファイル名をListBoard_xx.htmに設定し、新しい列を追加するときにListBoard_xxx.htmを更新できます。 ListThread.aspは似ていますが、パラメーターが多いため、多くのキャッシュファイルがあります。 listthread.asp = xxx&page = 2をキャッシュする場合、対応する静的ファイルはlistthread_xxx_p2.htmです。 Default.aspにも同じことが言えます。
では、いつ更新するかを判断する方法は?更新するのは何時ですか?
distthread.asp?subbid = xxx&page = 2、distthread.asp静的ファイル。ここに存在しないことは、新しいコンテンツの出現が私たちが更新する必要があることを意味することに注意してください。
ファイルはどのように存在しませんか?消去。新しいステッカーを公開したり、ステッカーを削除したり、ステッカーを移動するときに、listthread_xxx_p2.htmなどのすべての静的ファイルを削除できます。このようにして、キャッシュに通知されます。
まだ1つの問題が残っています。静的ファイルを生成する方法は?
前に言及したのと同じコンテンツがあることに気付きました。 defayour.asp、listthread.asp SubID = 123のアクセス結果は同じコンテンツになります)。そのため、静的ファイルを生成する必要性のロジックでは、Webアクセス要求による変更の前にコピーを呼び出し、HTMLコードを取得し、それを保存します。静的ファイル。このWebリクエストは、実際のビューアが静的コンテンツにアクセスする前に実際に同等です。サーバー自体は、出力されるHTMLによって検査され、これらのコードを返してファイル操作機能を静的ファイルとして保存します。このようにして、キャッシュファイルは実際の視聴者の前に作成されました。
このようなスキームは、元のレイアウトにほとんど触れず、変換のために404などのエラーを引き起こすことはほとんどありません。第二に、静的ファイルは、Googleなどの検索エンジンによってサイトを簡単に含めるのにも役立ちます。なぜだめですか?
最後に、ASPプログラミング環境でWebアクセスを通じて、多くの人がXMLHTTPコンポーネントを使用してアクセスし、多くの問題を引き起こすことを思い出させてください。 XMLHTTP自体が要求をキャッシュするリソースにより、このコンポーネントを介してリクエストによって取得されたコンテンツが得られ、論理的な混乱が生じます。したがって、XML Server HTTPオブジェクトまたはWinHTTPコンポーネントを選択して、Webリクエストリソースを実装する必要があります。
80ポストピック言語:キャッシュテクノロジーを達成するためのいくつかの重要なことがあります。
複数のページに適したサーバー側のアプリケーションには、多くの要素が更新されないことが多くあります。
HTML静的ファイルは生成され、テンプレートテクノロジーは通常、FSOまたはAdostreamを介して静的ファイルを生成するために使用されます。
他の
実際、最も重要なことは、クエリデータベースの数を最小限に抑え、もちろんデータベースの圧力を減らすために、あなた自身のシステムのニーズに応じてどのテクノロジーを採用するかを決定することです。 。
さらに、クライアントのキャッシュを使用して効率を改善できるかどうかを検討していますか?