ASPコレクションにアクセスしてASPを取得することは、時間のかかるコンピューターリソースを消費するプロセスです。この操作に関連するコレクションの検索が含まれるため、ローカル変数にアクセスすると、はるかに遅くなります。次に、ASP効率を改善する方法を見てみましょう。
たとえば、コードを次のフォームに書き込み、スクリプトエンジン処理をスピードアップします。
コードコピーは次のとおりです。strtitle = request.form( "title")
strfirstname = request.form( "firstName")
strlastname = request.form( "lastname")
Len(strtitle)の場合、strtitle = strtitle& ""
strfirstname = "" then strflullname = strtitle& ""&strlastnameの場合
elseif len(strfirstname)= 1次に
strfullname = strtitle&strfirstname& "。"&strlastname
それ以外
strfullname = strtitle&strfirstname& ""&strlastname
ifを終了します
ヒント2:適切なコレクションへの直接アクセス
そうでない場合は、strpage = request( "page")を使用してパラメーターを取得しないでください。これにより、すべてのコレクションが順番に検索されます。これは、適切なセットに直接アクセスするよりも効率が低く、この値が別のセットに表示されないことが絶対に保証されない限り、安全ではありません。
たとえば、クライアントのリクエストを満たすWebサーバー名を検索することが望ましい場合があります。これは、各クエリに表示されるrequest.servervarablesコレクションで「server_name」を探すことで実現されます。ただし、他のセットに「server_name」という名前の値(キー名はcase-inssensitive)も含まれている場合、リクエスト( "server_name")を使用する場合、誤った結果が取得されます。要するに、適切なコレクションに可能な限り直接アクセスする必要があります。
ヒント3:時間のかかる操作の前に、Response.isclientConnectedプロパティを使用します
Response.isclientConnectedを使用することは、ユーザーがサーバーにまだ接続されており、ASPによって作成されたWebページをロードしているかどうかを観察するための便利な方法です。ユーザーがダウンロードの切断または停止を停止した場合、バッファコンテンツがIISによって破棄されるため、サーバーのリソースをWebページを作成する必要はなくなりました。したがって、より多くのリソースを計算または使用するのに多くの時間を必要とするWebページの場合、訪問者がオフラインであるかどうかを各段階で確認する価値があります。
コードコピーは次のとおりです。...ページの最初の部分を作成するコード
response.isclientConnectedの場合
Response.Flush
それ以外
Response.End
ifを終了します
...ページの次の部分を作成するコード
ヒント4:ASPのADOオペレーションを最適化します
一般的に、データはWebサイトの実際のコンテンツを構成します。したがって、ADO操作を最適化してASPコードの実行をスピードアップすることは非常に便利です。
a。必要な列のみを選択します。ADOレコードセットを開くと、すべての列が必要でない限り、テーブル名(つまり、select *)を自動的に使用しないでください。個別の列を使用すると、サーバーに送信されるデータ量またはサーバーからフェッチされたデータの量が削減されます。すべての列を使用する必要がある場合でも、各列を個別に命名すると、サーバーがそれらの列の名前を解釈する必要がなくなったため、最高のパフォーマンスが得られます。
b。ストアドプロシージャを可能な限り使用してください。ストアドプロシージャは、準備が整った実行計画を含む事前にコンパイルされたプログラムであるため、SQLステートメントよりも速く実行されます。
c。適切なカーソルモードとロックモードを使用します。すべての作業が行われた場合、レコードセットからデータを読み取り、画面に表示することで、デフォルトのフォワードのみの読み取り専用レコードセットが使用されます。 Adoがレコードとロックの詳細を維持するために使用する作業が少ないほど、実行のパフォーマンスが高くなります。
d。オブジェクト変数を使用します。レコードセットを横断するときにパフォーマンスを改善する確実な方法は、オブジェクト変数を使用してセット内のメンバーを指すことです。例えば:
コードコピーは次のとおりです。rsgc.eofではありません
Response.write "プロジェクト名:"&rsgc( "gcmc")& "(プロジェクトコード:"&rsgc( "gccode")& ")"
rsgc.movenext
ウェンド
次のように書き換えを使用して、実行をスピードアップできます。
コードコピーは次のとおりです。gcmc = rsgc( "gcmc")を設定します
set gccode = rsgc( "gccode")
rsgc.eof respons.write "プロジェクト名:"&gcmc& "(プロジェクトコード:"&gccode& ")" rsgc.movenext
ウェンド
新しいコードはオブジェクト変数への参照を作成するため、実際の変数の代わりにオブジェクト変数を使用できます。つまり、セット内のインデックスの数が少なくなるため、スクリプトエンジンの動作が少なくなります。
ヒント5:スクリプトエンジンを混ぜないでください
ASPページでVBScriptとJScriptの両方を使用できることがわかっています。ただし、同じページでJScriptとVBScriptの両方を使用することはお勧めできません。サーバーはインスタンス化して2つの(1つではなく)スクリプトエンジンをキャッシュする必要があるため、これにより、システムの負担がある程度追加されます。したがって、パフォーマンスの観点から見ると、複数のスクリプトエンジンを同じページで混合しないでください。
上記はこの記事のすべての内容です。私はそれがすべての人の学習に役立つことを願っています、そして、私は誰もが間違った新しいテクノロジーチャネルをサポートすることを願っています。