推奨:ASPのセッションオブジェクトの詳細な説明1。属性1。SessionIDSessionIDプロパティは、ユーザーのセッションIDを返します。セッションを作成するとき、サーバーは各セッションに対して個別のIDを生成します。セッション識別子は、細長いデータ型として返されます。多くの場合、SessionIDはWebページ登録統計に使用できます。 2。タイムアウトタイムアウトプロパティは、数分でアプリケーションのsessiです。
WebページデザインにASPプログラムを使用する場合、それは主にデータベースにアクセスしてからページにデータを表示する必要があるためです。多くのデータがある場合、ページのアクセス速度が遅くなります。この問題を解決するために、次の手法を使用して、ページのアクセス速度を改善できます。ヒントの1つ:リクエストコレクションの使用効率を向上させる
値を抽出するためのASPコレクションにアクセスすることは、時間のかかるリソース消費プロセスです。この操作には関連セットの一連の検索が含まれているため、ローカル変数にアクセスするよりもはるかに遅いです。したがって、ページ内のリクエストコレクションの値を複数回使用する場合は、ローカル変数として保存することを検討する必要があります。
たとえば、コードを次のフォームに書き込み、スクリプトエンジン処理をスピードアップします。
| strtitle = request.form(title) strfirstname = request.form(firstName) strlastname = request.form(lastname) iflen(strtitle)thstrtitle = strtitle& ifstrfirstname = thstrullname = strtitle && strlastname elseiflen(strfirstname)= 1then strfullname = strtitle&strfirstname&。&strlastname それ以外 strfullname = strtitle&strfirstname && strlastname endif |
ヒント2:適切なコレクションへの直接アクセス
そうでない場合は、strpage = request(page)を使用してパラメーターを取得しないでください。これにより、すべてのコレクションが順番に検索されます。これは、適切なセットに直接アクセスするよりも効率が低く、この値が別のセットに表示されないことが絶対に保証されない限り、安全ではありません。
たとえば、クライアントのリクエストを満たすWebサーバー名を検索することが望ましい場合があります。これは、各クエリに表示されるrequest.servervarablesコレクションでserver_nameを探すことで実現されます。ただし、他のセットにserver_nameという名前の値も含まれている場合(キー名はcase-inssensitive)、request(server_name)を使用する場合、誤った結果が取得されます。要するに、適切なコレクションに可能な限り直接アクセスする必要があります。
ヒント3:時間のかかる操作の前に、Response.isclientConnectedプロパティを使用します
Response.isclientConnectedを使用することは、ユーザーがサーバーにまだ接続されており、ASPによって作成されたWebページをロードしているかどうかを観察するための便利な方法です。ユーザーがダウンロードの切断または停止を停止した場合、バッファコンテンツがIISによって破棄されるため、サーバーのリソースをWebページを作成する必要はなくなりました。したがって、より多くのリソースを計算または使用するのに多くの時間を必要とするWebページの場合、訪問者がオフラインであるかどうかを各段階で確認する価値があります。
...ページの最初の部分をcodeToCreateします ifresponse.isclientConnectedThen Response.Flush それ以外 Response.End endif ... codetocreateNextPartofpage |
ヒント4:ASPのADOオペレーションを最適化します
一般的に、データはWebサイトの実際のコンテンツを構成します。したがって、ADO操作を最適化してASPコードの実行をスピードアップすることは非常に便利です。
a。必要な列のみを選択します。ADOレコードセットを開くとき、すべての列を取得する必要がない限り、テーブル名(つまり、SELECT*)を自動的に使用しないでください。個別の列を使用すると、サーバーに送信されるデータ量またはサーバーからフェッチされたデータの量が削減されます。すべての列を使用する必要がある場合でも、各列を個別に命名すると、サーバーがそれらの列の名前を解釈する必要がなくなったため、最高のパフォーマンスが得られます。
b。ストアドプロシージャを可能な限り使用してください。ストアドプロシージャは、準備が整った実行計画を含む事前にコンパイルされたプログラムであるため、SQLステートメントよりも速く実行されます。
c。適切なカーソルモードとロックモードを使用します。すべての作業が行われた場合、レコードセットからデータを読み取り、画面に表示することで、デフォルトのフォワードのみの読み取り専用レコードセットが使用されます。 Adoがレコードとロックの詳細を維持するために使用する作業が少ないほど、実行のパフォーマンスが高くなります。
d。オブジェクト変数を使用します。レコードセットを横断するときにパフォーマンスを改善する確実な方法は、オブジェクト変数を使用してセット内のメンバーを指すことです。例えば:
wherenotrsgc.eof Response.writeプロジェクト名:&rsgc(gcmc)&(プロジェクトコード:&rsgc(gccode)&) rsgc.movenext ウェンド |
次のように書き換えを使用して、実行をスピードアップできます。
setgcmc = rsgc(gcmc) setgccode = rsgc(gccode) whileenotrsgc.eofresponse.writeプロジェクト名:&gcmc&(プロジェクトコード:&gccode&) rsgc.movenext ウェンド |
新しいコードはオブジェクト変数への参照を作成するため、実際の変数の代わりにオブジェクト変数を使用できます。つまり、セット内のインデックスの数が少なくなるため、スクリプトエンジンの動作が少なくなります。
ヒント5:スクリプトエンジンを混ぜないでください
ASPページでVBScriptとJScriptの両方を使用できることがわかっています。ただし、同じページでJScriptとVBScriptの両方を使用することはお勧めできません。サーバーはインスタンス化して2つの(1つではなく)スクリプトエンジンをキャッシュする必要があるため、これにより、システムの負担がある程度追加されます。したがって、パフォーマンスの観点から見ると、複数のスクリプトエンジンを同じページで混合しないでください。
あなたはそれを試すことができます。上記の方法は、ASPページの開口速度を効果的に改善できます。
共有:ASPでセッションオブジェクト変数を正しく使用する方法の解釈ASPを使用する人は誰でも、セッションオブジェクトが特定のユーザーセッションに必要な情報を保存し、ユーザーがアプリケーションのページ間でジャンプすると、セッションオブジェクトに保存されている変数がクリアされず、ユーザーがアプリケーションのページにアクセスするときにこれらの変数が常に存在します。プログラムの複雑さを減らし、プログラミングの効率を改善することができますが、多くの欠点もあります。