在Fatwire中,有两种资产类型包含代码:CSElement和Template。根据我的发现,Template是CSElement和SiteEntry的组合。目前,我使用模板作为一组CSElements的包装器,但我不完全确定这是构建我的网站的最佳方式。
关于何时模板或CSElement优于另一个>?是否有任何经验法则?或者这不重要吗?
答案 0 :(得分:2)
转换是在模板中使用最小逻辑部分,并且应该从模板中调用所有cs元素。逻辑应该在CSElements中编码。
例如,如果使用一个模板呈现页面。 导航部分将使用一个CSElement完成, 标题逻辑将在一个模板中, 加载body的逻辑将在另一个CSElement中。 所有这些CSelements都将从模板中调用。 简而言之,所有这些pagelet都是使用CSElemtents呈现的。但它是从模板调用的。
模板中唯一的加分点是您可以将模板与任何资产相关联。在所有其他情况下,使用CSElements。
答案 1 :(得分:2)
设计页面时,首选模块化策略。模板可以是类型化的或无类型的。使用类型模板,您可以编写每个资产类型/子类型的渲染逻辑,从而包含数据和类型。资产类型边界内的表示逻辑。以这种方式编码具有多种好处,如下所示
无类型模板并不总是首选,因为它没有明确定义它尝试呈现的资产或它所依赖的资产集。因此,通过无类型模板呈现的页面可能不会在缓存中存活更长时间。
另一方面,CSElement用于编写通用业务逻辑并跨模板重用。
答案 2 :(得分:1)
根据Fatwire开发人员指南,模板是一个包含页面,用于说明小页面在完成的页面上的显示方式,并包含每次查看页面时必须评估的任何代码。 pagelet是一个或多个CSElement的生成输出。
您应该使用模块化策略设计页面。网页由容器(模板)和一组pagelet组成。此方法简化了缓存策略,并允许您重用菜单,面包屑或导航栏等常用元素。
答案 3 :(得分:1)
从fatwire的角度看@高级别。
模板:模板是一个占位符,用于呈现您创建FLEX或BASIC资产的资产,但即使您创建网站条目,cs元素也不会用于呈现您的资产。
CS元素:CS元素对于执行某些业务逻辑非常有用。业务逻辑有很多种形式。
CS元素可用于构建可重用的组件,如页眉中常见的页眉,页脚,并在模板中调用。
在自定义fatwire Advance UI中。假设您可以通过编写cs元素并创建站点条目来构建自己的树选项卡,并且这个树选项卡是一个自定义部分,在加载时将调用站点条目。(这很复杂但这是基于业务需求而这种情况我们使用cs元素
所以模板用于渲染资源,而cs元素用于执行某些业务逻辑。
模板是可缓存的,其中cs元素不是,但如果你仍然想让它可以缓存,我们可以添加一个网站条目到cs元素
答案 4 :(得分:1)
模板可在资产上选择,也可与InSite编辑和时间框预览紧密集成。 CSElement不是。这两个是为不同目的而创建的,无法进行比较。
答案 5 :(得分:0)
我假设您熟悉元素目录和站点目录条目的概念。
CSElement是包装元素目录条目的资产。元素只能在内部调用,这就是编写业务逻辑的最佳位置。通常,缓存与此类逻辑无关。
SiteEntry是包装网站目录条目的资产。站点商品关联“pagename”参数是具有根元素的任何标准ContentServer URL。这是一个元素可以在外部暴露的方式。
模板是包装元素目录条目和多个站点目录条目的资产。模板是一种在不同站点(由站点目录条目提供)的上下文中的元素中提供呈现逻辑的方法。模板还允许缓存。
如上所述,模板可能是创建“View”的最佳候选者,而元素可能是“Model”的最佳候选者和其他-usables modules。
答案 6 :(得分:0)
我想补充几点。
从模板调用CSElement,根据调用模板缓存CSElement。因此,如果您希望从调用模板中为CSElement提供不同的缓存,我们需要为该CSElement提供SiteEntry,并且您可以定义其缓存。
如指南中所述,Template用于呈现资源,SiteEntry + CSElement可用于任何事情。例如:假设您要创建一个实用程序来搜索CSElement中特定类型的资产,并将输出作为JSON对象。我们可以使用我们想要的任何名称为该CSElement创建SiteEntry资产,并通过URL http://www.example.com/cs/ContentServer?pagename=SiteEntryName调用该站点条目资产,或者可以通过ajax调用在JS文件中调用,其中URL为/ cs / ContentServer?pagename = SiteEntryName。我们甚至可以在URL本身传递参数并在CSElement中处理它们。在创建SiteEntry时,如果要通过URL调用,请选择Wrapper为True。不能通过URL调用模板,但它们需要资产。
我希望这会有所帮助。
答案 7 :(得分:0)
CSElement
CSElement资产用于编写可重用的一些代码。它由模板呈现。 CSElement资产是一个元素,没有站点条目。
他们没有缓存条件。我们需要使用SiteEntry来缓存CSElement的输出。
创建CSElement时,CSElement数据库表中的条目将作为一行创建。
render:callelement标记用于调用CSElement资产。
网站录入
站点条目资产是页面名称。当您的代码直接按元素名称调用元素而不通过页面名称时,被调用页面的输出将作为该页面的一部分进行缓存。如果要缓存CSElement的输出并维护其自己的缓存条件,则代码应通过特定页面名称调用CSElement。为此,您需要创建一个SiteEntry并将其映射到CSElement。
创建SiteEntry时,将在SiteEntry数据库表中创建一个条目作为一行。
模板
模板资产既是元素,也是呈现资产的页面或小页面。这意味着创造以保持一致的外观和感觉一个网站。模板可以是完整页面或页面的一部分。所以我们可以创建任意数量的模板。
这些都是可以追究的。他们为它们设置了缓存标准,以确定它们是否被缓存以及持续多长时间?我们使用render:calltemplate标签来调用Template资产。
创建模板时,模板数据库表中将创建一个条目作为一行。
巴拉斯
http://devble.com/what-are-cselement-siteentry-and-template-assets