0
投稿したページに投稿されたコメントを処理して返信するCFCを作成しました。これは単にブラウザに戻されたコメントのJSON文字列を返し、jQueryを使用してDOMに挿入されます。cfreturnがCFCで実行された後にコード化されないのはなぜですか?
しかし、新しいコメントが投稿されたことを著者に通知するメールを送信したいと思います。 JSONがブラウザに返された後、DOMを更新する前に電子メールが送信されるのを待つよりも、ユーザーインターフェイスのスピードが上がるため、この処理を行いたいと思います。
私は現在これをテストしており、<cfreturn>
タグの後にColdFusionで何かが実行されることはありません。たとえば、次は私のために働いていない。
<cffunction>
....
<cfreturn NewComment/>
<!--- Anything after the cfreturn above doesn't seem to get executed --->
<cfmail to="[email protected]" from="[email protected]">
A new comment is available for you to read
</cfmail>
</cffuntion>
しかしこれは、作業を行います。
<cffunction>
....
<cfmail to="[email protected]" from="[email protected]">
A new comment is available for you to read
</cfmail>
<cfreturn NewComment/>
</cffuntion>
どのように私は私がやろうとしているものを達成でき、これに対処は何ですか?メールを送信するだけではなく、DOMが更新されるまでにかなりの時間待っていたため、ユーザーエクスペリエンスが低下することがありました。
テンプレートが完全に処理されると、サーバーの応答はクライアントに送信されます。 ''を使用して早期に出力バッファをフラッシュできますが、あなたのアプローチは ''の仕事のように聞こえます。 –
Alex
Alexは正しいです。cfthreadを調べて、元のスレッドを保持していない状態で非同期にサーバー上でコードを実行できるようにしてください。別のオプションは、データベーステーブルにレコードを入れ、数分後にスケジュールされたタスクで実際の電子メールを送信することです。 –