我为LoadedContent事件添加了一个事件处理程序。我有点惊讶的是,在单次加载期间,该事件似乎会多次触发。为什么会这样?
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
ServiceLocator.Current.GetInstance<IContentEvents>().LoadedContent += this.EPiServerApplication_LoadedContent;
}
修改
我正在使用EPiserver 8.
对于“一个负载”,我的意思是从DOPE模式进入编辑模式,该页面是一个孩子但没有孩子的页面。上次我为该页面计算了17次事件。
答案 0 :(得分:3)
每次调用IContentLoader(或IContentRepository)上的Get / TryGet时,都会触发LoadedContent事件。无论数据是从缓存还是从数据库加载,都会发生这种情况。
由于这些API被许多单独的代码分支使用,特别是在编辑模式下,此事件将被触发多次,就像您找到的那样。通常这不应该是你需要担心的任何事情,除非你在事件处理程序中做了一些资源密集的事情。