1

私はcoldfusion内でApplication.cfcを実験しています。application.cfcがメモリ内で静的であるかどうか、つまり、最初のユーザーに対して1回作成され、それにアクセスするすべてのユーザーが同じapplication.cfc(メモリ内)にアクセスした後に作成されるかどうかを知りたいです。

例。UserOneがWebページにアクセス>Application.cfcがメモリブロック1に作成されますUserTwoがWebページにアクセス>メモリブロック1のApplication.cfcが再度呼び出されますが、関数onRequestStartが呼び出されます。

application.cfcはメモリ内で(または期限切れになるまで)静的であると言っているのは正しいですか、それともすべてのユーザーに対して再作成されていますか?もしそうなら、これは大きなメモリの問題になるでしょうか?

誰かが感謝を説明できますか?

4

2 に答える 2

6

Application.cfc はリクエストごとに実行されますが、状況に応じてその一部のみが実行されます。疑似コンストラクター ( this.name 型の設定を行う場所) は毎回実行され、問題なく変更することはできません。onApplicationStart() は、アプリケーションが存在しない場合にのみ実行されます。アプリケーション スコープの変数は、すべてのセッションからアクセスでき、(セッション インスタンスではなく) アプリケーション インスタンスごとに 1 回だけ存在します。onSessionStart() は、新しい訪問者がサイトに初めてアクセスしたときにのみ実行されます。他にもイベント固有の機能があります

あなたの質問に役立つかもしれない別のスレッドがあります。

ColdFusion Application.cfc - 実行順序

アドビのドキュメントと同様に:

http://help.adobe.com/en_US/ColdFusion/10.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-74fa.html

アクティブ ユーザー カウンターは、擬似コードのようなものと同じくらい簡単です。

onApplicationStart {application.activeUsers = 0} 
onSessionStart {application.activeUsers++} 
onSessionEnd {application.activeUsers--}

いくつかの混乱を解消する

this」スコープは、名前、sessionTimeOut、または customTagPaths などのアプリケーション設定を設定するために使用されます。これらの設定は ColdFusion に組み込まれています。

<cfscript>
    this.customtagpaths = expandPath('./customtags');
    this.name = "myCoolWebsite";
    this.sessionmanagement = "Yes" ;
    this.sessionTimeOut = CreateTimeSpan(0,0,20,0);
</cfscript>

「this」スコープはアプリケーションに関連していますが、これを使用して永続的なアプリケーション スコープ変数を設定することはできません。アプリケーション変数は、「アプリケーション」を使用して設定されます。構文であり、通常は onApplicationStart() 関数で最初に設定されます。

<cfset application.myVariable = "I am the same value for every user">
于 2012-10-30T10:40:01.757 に答える
0

あなたの仮定は正しいです

アプリケーション イベントは、アプリケーションのライフ サイクル中に発生する特定のイベントです。これらのイベントのいずれかが発生するたびに、ColdFusion は Application.cfc ファイル (アプリケーション CFC とも呼ばれます) 内の対応するメソッドを実行します。Application.cfc ファイルは、アプリケーション設定を定義し、アプリケーション イベントを処理するメソッドを実装します。

ソース

アプリケーション変数は、アプリケーション内のすべてのページ (つまり、同じアプリケーション名を持つページ) で使用できます。アプリケーション変数は永続的であるため、ページ間で値を簡単に渡すことができます。

ソース

こちらも注目

cflock タグは、ColdFusion コードへの同時アクセスを制御します。cflock タグを使用すると、次のことができます。

  • Session、Application、および Server スコープ、および ColdFusion スレッドを使用するアプリケーションの Request および Variables スコープで、共有データにアクセスして操作するコードのセクションを保護します。

...

ソース

于 2012-10-30T10:36:40.167 に答える