2016-10-01 48 views
0

我已經創建了一個CFC來處理並返回發佈回提交頁面的評論。它只是返回一個返回給瀏覽器的JSON字符串,然後使用jQuery將其插入到DOM中。爲什麼cfirurn在CFC中執行後不編碼?

但是,我也想發郵件通知作者已發佈新評論。我想在JSON已經返回到瀏覽器之後執行此操作,因爲它會加快用戶界面的速度,而不是在更新DOM之前等待發送電子郵件。

我目前正在測試這個,並且無法看到ColdFusion將在<cfreturn>標記後執行任何操作。例如,下面的工作不適合我:

<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會在更新之前等待大量時間,從而導致用戶體驗緩慢。

+5

服務器的響應只有在完成模板處理後才發送給客戶端。您可以使用''儘早刷新輸出緩衝區,但是您的方法聽起來更像是''的作業。 – Alex

+1

亞歷克斯是正確的,你應該看看cfthread,它允許你異步執行服務器上的代碼,同時不佔用原始線程。另一種選擇是在數據庫表中放入記錄,並在幾分鐘後讓計劃任務發送實際的電子郵件。 –

回答

5

返回結束函數的處理。沒有處理返回之後的任何內容。

相關問題