我的问题是我们正在创建一个响应式网站,我们将在一个视图上有效地渲染同一项目的两个渲染。当前标记过于复杂,无法在所有设备上进行重构。我们不希望对设备检测进行“自适应”,因为我们的客户认为窗口大小调整是一个有效的用例。
我们希望在这两者中保持相同的演示文稿详细信息,我的解决方案是尝试多次呈现占位符?这可能吗?有更好的解决方案吗?
要明确:
来自评论,为清楚起见
我认为问题的症结在于MyComponent和MyMobileComponent都内部有动态内容,我们称之为'MyPlaceHolder'。那么我如何只有1个MyPlaceholder,但是为MyComponent和MyMobileCompenent渲染它。拥有2个独特的占位符是一个可怕的创作流程,可能无法实现。
答案 0 :(得分:0)
我知道你说这不是一个选项,但我认为最好的响应式实现是使用CSS媒体查询来改变不同大小的外观。
除此之外,我认为响应的第二个最佳建议是使用两个版本的控件进行单个渲染,就像你已经做过的那样。
虽然你可以使用占位符并将两个独立的渲染(MyComponent和MyMobileComponent)添加到同一个占位符,但我不确定这对你有多大帮助。您可能绑定到两者的相同数据源,这不一定是最简单的创作流程。如果您拥有两个的唯一原因是针对不同的分辨率使用不同的标记,我认为您不需要复制Sitecore数据模型来支持这一点。
我看到的一个好处是,通过分离组件,您允许作者将移动版本放在页面上与非移动版本完全不同的位置。然而,这可能会让作者感到困惑而不是有用。
作为旁注,你提到标记“太复杂而不能重构”。这可能表明它确实需要重构。如果您要构建和维护需要支持响应的站点,那么您应该尝试简化设计和标记。重构的成本将低于维持高度复杂的标记结构的持续维护成本(或者重复,取决于将来是否需要替代平板电脑版本)。