Hi Rob,

This breadcrumb code is as efficient/inefficient as it were in 7.5 or 11.2. 
 Here is the reason why.

Let's assume for a minute that the code is inside a navigation template, 
which is set run for all levels and selected pages only.

Also, let's assume the page is a 3rd level page: Home | About Us | Contact

The code runs 3 times, once at each level.  Each time it runs, it does a 
check to see if the page at current level is also the page that initiated 
the call, if not, output page title and go to next level.

It is *O(n) efficiency* when you are generating breadcrumb for the page you 
are viewing, since it only cares about current page, and direct ancestor 
pages.

If you are generating a top navigation or left navigation, which also need 
to display sibling pages of current page, and you are using 1 navigation 
template for all levels and states (selected and not selected).  Then it is 
*O(n^2) 
efficiency*.

Navigation Best Practices:
1. navigation templates should never be reused for more than once
2. 1 navigation template per level and selection stat.  For example, one 
should have 2 navigation templates for level 2 - selected and level 2 - not 
selected
3. name your navigation templates by [navigation area name] - [level] - 
[selection state]
4. avoid using .GetElements() or .GetElementByName() rendertag in 
navigation template as it is a resource hog
5. not all pages should be in navigation manager.  Rule of thumb: no need 
to be in navigation manager if the page is not accessible via navigation. 
 For example, article pages.  Link to article pages usually don't appear in 
main navigation, so article page should have its own foundation content 
class that is not a master page.  If not a master page, not automatically 
added to navigation structure.  Smaller navigation structure, smaller N.

Hope that helps,

Best,

-Jian

On Monday, February 3, 2014 1:16:17 PM UTC-5, Rob wrote:
>
> We suspect we do not have best practice code for our navigation logic and 
> our new upgrade to WSM 11.1 HF5 can't efficiently process it.  This is 
> happening in only SmartEdit and Preview on only the news articles, where 
> uniquely there are a lot of sibling pages.  This is happening with any of 
> our navigation logic.  Below is the simpliest navigation routine we 
> use that can cause this slowdown.  
>  
> Anyone have an idea of what is wrong?
>  
> Rob
>  
>  
>
> ==================================================================================================
>  
>  
> <reddot:cms>
>   <if>
>     <query valuea="Context:CurrentIndex.Id" operator="==" 
> valueb="Context:FirstIndex.Id">
>       <if>
>         <query valuea="Context:CurrentIndex.Id" operator="==" 
> valueb="Context:LastIndex.Id">
>           <htmltext><%!! Context:CurrentIndex.GetUrl() !!%></htmltext>
>         </query>
>         <query type="else">
>           <htmltext><%!! Context:CurrentIndex.GetUrl() 
> !!%>|<navigation:nextlevel></htmltext>
>         </query>
>       </if>
>     </query>
>     <query type="else">
>       <if>
>         <query valuea="Context:CurrentIndex.Id" operator="==" 
> valueb="Context:LastIndex.Id">
>           <htmltext><%!! Context:CurrentIndex.GetUrl() !!%></htmltext>
>         </query>
>         <query type="else">
>           <htmltext><%!! Context:CurrentIndex.GetUrl() 
> !!%>|<navigation:nextlevel></htmltext>
>         </query>
>       </if>
>     </query>
>   </if>
> </reddot:cms>
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"RedDot CMS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reddot-cms-users+unsubscr...@googlegroups.com.
To post to this group, send email to reddot-cms-users@googlegroups.com.
Visit this group at http://groups.google.com/group/reddot-cms-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to