网站模板效率较低似乎很奇怪.我的理解是,无论您使用网站模板还是网站定义,所有网站内容都存在于数据库中.站点模板一次应用于数据库,从那时起,站点不应该关心内容是否是使用站点模板创建的.
那么,网站模板效率低于网站定义的架构原因是什么?
编辑:链接到博客,说有性能差异:
>从MSDN开始:由于将模板存储在数据库中并从数据库中检索模板很慢,因此网站模板可能会导致性能降低.
>从DevX开始:但是,SharePoint中的用户模板可能会导致性能问题,如果您尝试为整个组织创建一组可重用模板,则可能不是最佳方法.
>从IT Footprint开始:由于将模板存储在数据库中并从数据库中检索模板很慢,因此网站模板可能会导致性能降低.每次呈现页面时都会编译和执行数据库中的模板.
>从Branding SharePoint开始:自定义网站定义比自定义模板具有以下优势:
>数据直接存储在Web服务器上,因此性能通常更好.
至少,我认为上面的文章是不完整的,我认为根据我对SharePoint架构的了解,有些文章会产生误导.
我读了另一篇反对性能差异的博客文章,但我找不到链接.
使用站点模板与站点定义的性能影响通常被夸大了.为什么?
好吧,让我们举个例子:
>您采用团队网站定义.
>您将其另存为新的站点模板
>然后,您可以基于此新网站模板创建新的子网站.
你有什么?好吧,要记住的重要一点是“重影”发生在PAGE级别,而不是在SITE级别.由于您尚未自定义任何页面,因此您访问的任何页面仍直接来自文件系统的站点定义.
想证明一下,这里有两个测试:
第一次测试
>尝试修改原始站点定义中的default.aspx页面.
>检查您的网站模板,注意您看到了修改.
>它仍然是“Ghosted”到文件系统
第二次测试
>创建新的网站定义.
>基于此新的站点定义创建新站点.
>创建新的站点模板
>将站点模板发送给与SharePoint的配合,并要求他们基于它创建新的子站点.
它会失败.为什么?因为他们的机器上不存在站点定义.
因此,回到您的问题,“SharePoint网站模板的性能是否真的低于网站定义?”我的答案是:“在您决定使用网站定义或网站模板时,性能考虑不应发挥作用,您应具备的功能目标”.现在它引起了争议,但对我来说,选择网站定义而非创建功能的原因非常少.
就“重影”而言.是的,当定制你的页面将存储在数据库中,并且是的,你将不得不做一个数据库往返来获得它.但是,SharePoint,它是智能的,当然会缓存它.所以,从理论上讲,它的速度较慢,在实践中,没有人真正注意到.
Ghosting自2003年以来一直在该产品中(可能在之前的STS中,不记得),我从未见过它对性能影响的官方指导,也没有任何人推测超出“它慢”的评论.
这让我相信它并不是真的令人担忧.对“Ghosted”页面的更大担忧是维护它们所带来的困难,但是,对于2007和Masterpages,这是一个小得多的问题.