2015-04-01 75 views
0

我已經爲LoadedContent事件添加了一個事件處理程序。我感到有點驚訝,事件似乎在單次加載期間多次觸發頁面。爲什麼會發生?爲什麼IContentEvents.LoadedContent事件爲頁面多次觸發?

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 
    ServiceLocator.Current.GetInstance<IContentEvents>().LoadedContent += this.EPiServerApplication_LoadedContent;   
} 

編輯

我使用EPiserver 8

隨着「一燎負荷」我的意思是從DOPE模式會爲一個網頁,是一個孩子,但不具有編輯模式兒童。上次我計算了該頁面的17次事件。

+0

也許有代碼檢索頁面在多個地方,顯式或通過GetChildren等?另外,您應該將InitializableModule中的事件連接起來。 – 2015-04-01 12:16:57

回答

3

每次調用IContentLoader(或IContentRepository)上的Get/TryGet時,都會觸發LoadedContent事件。無論數據是從緩存還是從數據庫加載,都會發生這種情況。由於這些API被許多獨立的代碼分支使用,特別是在編輯模式下,這個事件將會像您發現的那樣被多次觸發。通常情況下,這不應該是你需要擔心的任何事情,除非你在事件處理程序中使用了大量資源。

相關問題