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會在更新之前等待大量時間,從而導致用戶體驗緩慢。
服務器的響應只有在完成模板處理後才發送給客戶端。您可以使用''儘早刷新輸出緩衝區,但是您的方法聽起來更像是''的作業。 –
Alex
亞歷克斯是正確的,你應該看看cfthread,它允許你異步執行服務器上的代碼,同時不佔用原始線程。另一種選擇是在數據庫表中放入記錄,並在幾分鐘後讓計劃任務發送實際的電子郵件。 –