为什么对页面多次触发IContentEvents.LoadedContent事件?

时间:2015-04-01 11:45:02

标签: episerver

我为LoadedContent事件添加了一个事件处理程序。我有点惊讶的是,在单次加载期间,该事件似乎会多次触发。为什么会这样?

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

修改

我正在使用EPiserver 8.

对于“一个负载”,我的意思是从DOPE模式进入编辑模式,该页面是一个孩子但没有孩子的页面。上次我为该页面计算了17次事件。

1 个答案:

答案 0 :(得分:3)

每次调用IContentLoader(或IContentRepository)上的Get / TryGet时,都会触发LoadedContent事件。无论数据是从缓存还是从数据库加载,都会发生这种情况。

由于这些API被许多单独的代码分支使用,特别是在编辑模式下,此事件将被触发多次,就像您找到的那样。通常这不应该是你需要担心的任何事情,除非你在事件处理程序中做了一些资源密集的事情。