0

在 Fatwire 中,有两种包含代码的资产类型:CSElement 和 Template。根据我的发现,模板是 CSElement 和 SiteEntry 的组合。目前,我使用模板作为一组 CSElement 的包装器,但我不完全确定这是构建我的网站的最佳方式。

关于模板或 CSElement 何时优于另一个>,是否有任何经验法则?还是真的不重要?

4

8 回答 8

2

转换是在模板中使用最少的逻辑部分,所有的cs元素都应该从模板中调用。逻辑应该在 CSElements 中编码。

例如,如果使用一个模板呈现页面。导航部分将使用一个 CSElement 完成,标题逻辑将在一个模板中,加载正文的逻辑将在另一个 CSElement 中。所有这些 CSelements 都将从模板中调用。简而言之,所有这些 pagelet 都是使用 CSElemtents 呈现的。但它是从模板中调用的。

模板中唯一的优点是您可以将模板与任何资产相关联。在所有其他情况下,使用 CSElements。

于 2013-01-24T14:37:23.903 回答
2

设计页面时强烈推荐模块化策略。模板可以是有类型的或无类型的。使用有类型的模板,您可以编写每个资产类型/子类型的呈现逻辑,从而在资产类型边界内包含数据和表示逻辑。以这种方式进行编码具有多种好处,如下所示

  1. 帮助您设计缓存模型。您可以将模板缓存为具有不同缓存到期设置的 pagelet。
  2. 规定资产如何相互连接,以便修改资产数据或逻辑包含在 pagelet 中。
  3. 可以使用模板选择器在资产级别交换模板以生成不同布局的组合。

无类型模板并不总是首选,因为它没有明确定义它试图渲染的资产或它依赖的资产集。因此,通过无类型模板呈现的页面可能不会在缓存中存活更长的时间。

另一方面,CSElement 用于编写通用业务逻辑并跨模板重用。

于 2013-03-09T22:12:37.383 回答
1

根据 Fatwire 开发人员指南,模板是一个包含页面,它列出了小页面在完成页面上的显示方式,并包含每次查看页面时必须评估的任何代码。pagelet 是一个或多个 CSElement 的生成输出。

您应该使用模块化策略设计您的页面。一个网页由一个容器(模板)和一组 pagelet 组成。这种方法简化了缓存策略,并允许您重用常见元素,如菜单、面包屑或导航栏。

于 2013-01-23T07:22:55.747 回答
1

从fatwire的角度来看@高水平。

模板:模板是用于渲染您创建的 FLEX 或 BASIC 资产的资产的占位符,但即使您创建了站点条目,cs 元素也不用于渲染您的资产。

CS 元素:CS 元素对于做一些业务逻辑很有用。业务逻辑有多种形式。

CS 元素可用于构建页面中常见的可重用组件,例如页眉、页脚,这在模板中被调用。

在自定义 fatwire Advance UI 中。假设您可以通过编写一个cs元素并创建一个站点条目来构建自己的树选项卡,并且这个树选项卡是一个自定义部分,当它被加载时,站点条目将被调用。(这很复杂,但这是基于业务需求而这种情况我们使用cs元素)

所以模板用于渲染资产,cs 元素用于执行一些业务逻辑。

模板是可缓存的,但在 cs 元素中没有,但如果您仍想使其可缓存,我们可以将站点条目添加到 cs 元素

于 2013-07-12T06:50:56.960 回答
1

模板可以在资产上选择,并且还与 InSite 编辑和 Timebox 预览紧密集成。CSElement 不是。这两个是为不同的目的而创建的,无法进行比较。

于 2013-11-27T04:02:14.337 回答
0

我假设您熟悉元素目录和站点目录条目的概念。

CSElement 是包装元素目录条目的资产。一个元素只能在内部调用,这就是为什么它是编写业务逻辑的最佳位置。通常缓存与此类逻辑无关。

SiteEntry 是包装站点目录条目的资产。站点目录条目将“pagename”参数关联为具有根元素的任何标准 ContentServer URL。这是元素可以暴露在外部的方式。

模板是包装元素目录条目和多个站点目录条目的资产。模板是一种在不同站点上下文中的元素中提供呈现逻辑的方法(由站点目录条目提供)。模板还允许缓存。

如上所述,模板可能是创建“视图”的最佳候选者,而元素可能是“模型”和其他可重用模块的最佳候选者。

于 2013-12-31T04:17:38.343 回答
0

我想再补充几点。

  1. 从Template调用CSElement,CSElement根据调用模板缓存。因此,如果您希望 CSElement 的缓存与调用模板不同,我们需要为该 CSElement 提供 SiteEntry,您可以定义其缓存。

  2. 如指南中所述,模板用于渲染资产,SiteEntry+CSElement 可用于任何事情。例如:假设您要创建一个实用程序来搜索 CSElement 中特定类型的资产,并且输出为 JSON 对象。我们可以使用我们想要的任何名称为该 CSElement 创建 SiteEntry 资产,并通过诸如http://www.example.com/cs/ContentServer?pagename=SiteEntryName之类的 URL 调用该站点条目资产,或者可以通过 ajax 调用在 JS 文件中调用 where URL 将是 /cs/ContentServer?pagename=SiteEntryName。我们甚至可以在 URL 本身中传递参数并在 CSElement 中处理它们。在制作 SiteEntry 时,如果您想通过 URL 调用,请选择 Wrapper 为 True。模板不能通过 URL 调用,它们需要资产。

我希望这有帮助。

于 2014-03-08T15:12:43.220 回答
0

CSElement
CSElement 资产用于编写一些可重用的代码。它由模板呈现。CSElement 资产是一个元素,没有站点条目。

它们没有缓存标准。我们需要使用 SiteEntry 来缓存 CSElement 的输出。

创建 CSElement 时,将在 CSElement 数据库表中创建一个条目作为一行。

render:callelement 标签用于调用 CSElement 资产。

站点条目
站点条目资产是页面名称。当您的代码直接通过元素名称调用元素而不通过页面名称时,被调用页面的输出将作为该页面的一部分进行缓存。如果要缓存 CSElement 的输出并维护其自己的缓存条件,您的代码应通过特定页面名称调用 CSElement。为此,您需要创建一个 SiteEntry 并将其映射到 CSElement。

创建 SiteEntry 时,将在 SiteEntry 数据库表中创建一个条目作为一行。

模板


模板资产既是元素又是呈现资产的页面或小页面。这意味着创建以保持网站的一致外观。模板可以是完整的页面或页面的一部分。所以这样我们可以创建任意数量的模板。

这些都是可以的。它们为它们设置了缓存标准,以确定它们是否被缓存以及缓存多长时间?我们使用 render:calltemplate 标签来调用模板资源。

创建模板时,将在模板数据库表中创建一个条目作为一行。

巴拉特
http://devble.com/what-are-cselement-siteentry-and-template-assets

于 2014-04-01T18:32:25.540 回答