3

後でアクセスするために CFC オブジェクトを REQUEST スコープに格納しても安全ですか? 現在、サイトはナビゲーション データを少なくとも 2 回、ブレッドクラム機能を使用している場合は 3 回ロードします。場合によっては、このデータが異なる場合がありますが、ほとんどの場合、まったく同じナビゲーション データを取得するために 3 つの別々の呼び出しが行われます...

そのため、最初のロード後にナビゲーション データをある種の構造体の REQUEST スコープに保存し、その後の呼び出しで、そのデータが既に存在するかどうかを確認し、存在する場合は、格納されているものを使用することを考えていました。再作成するよりも。これは、含まれているオブジェクトの外部の共有スコープにアクセスすることになることはわかっていますが、これはおそらく良い習慣ではありませんが、最終的にはページの読み込み時間を半分に短縮できます...

それができることはわかっていますが、最近サーバーに問題があり、特定のものを使用/保存する方法からメモリリークが発生している可能性があるため、安全に実行できるかどうか疑問に思っていました...

4

2 に答える 2

3

variablesまたはスコープのいずれかがrequest目的に適していますが、キャッシュされた変数を引数として受け入れるように、この変数へのアクセスを必要とする関数を変更することをお勧めします。CFCに関しては、メソッドに渡して、init()そのCFC内のメソッドで使用するために保存できます(初期化すると仮定します)

グローバル変数 (現在のリクエストに制限されているものであっても) に依存することで、メソッドがよりカプセル化されていることを確認することで解決される可能性があります。

以前のコメントで述べたように、ColdFusion - 「リクエスト」スコープを使用する場合は? 回答に関連情報が含まれているため、すぐに読む価値があります。

于 2012-04-18T15:20:13.643 に答える
1

はい。REQUESTスコープにアクセスできる唯一のリクエストは、現在のリクエストです。

于 2012-04-18T15:05:19.257 に答える