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