[英]Using <cfinvoke> in ColdFusion
我想編寫一個服務器端驗證代碼來驗證頁面上的所有用戶輸入。 我想保留所有來自表示層的服務器端驗證。 現在,我正在研究創建一個組件,並將所有驗證功能保留在其中。 我將使用<cfinvoke>
標記訪問用戶頁面上的驗證方法。 但是問題是我必須對大約50個用戶輸入應用驗證,並且需要使用<cfinvoke>
標記50次。 誰能告訴我多次使用<cfinvoke>
會影響性能,還是我可以采用其他更好的方法?
使用<cfinvoke>
沒有明顯的開銷。 但我仍然建議您在這里避免這種情況。 相反,請考慮以下示例(示例):
Validator.cfc
<cfcomponent>
<cffunction name="validateX" access="public" ...>
...
</cffunction>
<cffunction name="validateY" access="public" ...>
...
</cffunction>
<cffunction name="validateZ" access="public" ...>
...
</cffunction>
</cfcomponent>
controller.cfm
<cfset validator = new Validator()>
<cfset validator.validateX(...)>
<cfset validator.validateY(...)>
<cfset validator.validateZ(...)>
...
現在,您可以輕松處理驗證結果。
如果返回布爾值:
<cfif validator.validateX(...)>
...
<cfelse>
...
</cfif>
如果返回錯誤數組:
<cfset errors = []>
<cfset errors.addAll( validator.validateX(...) )>
<cfset errors.addAll( validator.validateY(...) )>
<cfset errors.addAll( validator.validateZ(...) )>
等等
<cfinvoke>
創建Class的實例( new Validator()
),並以相同方式調用方法validateX(...)
。 主要區別在於:在每個<cfinvoke>
上都重新創建實例,並且必須將return指定為輸入變量( returnVariable
),在大多數情況下這很麻煩。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.