Pageprovider and performance



Is there a performance loss when using a lot of pageproviders for one site?

I guess that the answer is hidden in how pages are mapped to provider so..... When a request arrives to the site how is current request url mapped to correct provider, is there a pageprovider manager that iterates over all providers and "asks are you owner for this page" or how does it work?

Thanks for clarifying this for me!


#65289 Jan 24, 2013 18:59
  • Johan Petersson
    Member since: 2007

    If you have a look at a PageReference from a page served from a Pageprovider you'll see that the name of the provider is included.

    If you disable the url rewriter urls would look something like /Templates/Page.aspx?id=12345__pageprovidername&epslanguage=sv, also called mapped url.

    So I guess the look-up isn't that slow and the rewriter also cache all rewritten urls.

    #65290 Jan 24, 2013 19:18
  • Johan Petersson
    Member since: 2007

    ... And that's why you shouldn't pass the ID from a PageReference to e.g. a querystring parameter;

    <a href="MyPage.aspx?loadPage=<%= CurrentPage.PageLink.ID %>">Test</a>

    And then parse it as an integer in MyPage.aspx. You should do:

    <a href="MyPage.aspx?loadPage=<%= CurrentPage.PageLink.ToString() %>">Test</a>

    And parse the PageReference with PageReference.Parse(Request["loadPage"]). Otherwise the provider name will be lost.

    #65291 Jan 24, 2013 19:24

    Thank you very much !

    #65293 Jan 24, 2013 20:10