品牌问题 - JS注入

时间:2015-06-02 05:08:12

标签: sharepoint-2013 sharepoint-online

在我们将代码从FTC转换为CAM的尝试中,我们从品牌角度来看面临一些小困难。我将简要介绍下面的情景:

  • 在我们当前的FTC实现中,我们使用CSS和JS来呈现所需的UI。两个资产的引用都存在于母版页中,因此使用HTML

  • 进行呈现
  • 由于建议在移动到vNext时不修改母版页,我们决定通过自定义操作路径。

  • 我们为测试网站添加了CSS和JS的自定义操作。在浏览我们的测试网站时,我们发现用户界面按预期显示,但只有明显的延迟。

  • 看来,发生的事情是corev4.css正在应用,然后大约2秒后我们的自定义CSS会被应用,导致令人不快的闪烁效果。

  • 我经历了一个名为Branding.CustomCSS的项目,该项目存在于PnP示例中,它通过自定义操作呈现链接标记来执行类似的应用CSS。在该项目的文档中,有人提到如果我们在Office 365或2014年4月的CU on-prem上,这不是推荐的应用CSS的方法。相反,建议使用AlternateCSS方法。

  • 我修改了代码,使用AlternateCSS方法渲染CSS引用,同时保持自定义操作以呈现JS引用。这无疑改善了体验。

  • 我们仍然有JS文件,虽然它正在操纵DOM以实现所需的外观和感觉,但仍然会加载延迟。我们怀疑这种情况正在发生,因为在自定义操作的情况下,插入JS引用的代码在页面加载后运行。当JS加载并执行时,同时显示的UI没有DOM操作,并且不是所期望的。因此,JS负责美化的页面中的一些组件的闪烁仍然存在。在我们的FTC中并非如此,因为没有明显的滞后。

我需要一些关于我们应该遵循什么方法的建议,以便我们可以消除加载此类资产文件的延迟? 另外,是否有一种方法可以将JS引用与HTML一起呈现,而不是像在自定义操作的情况下那样在页面加载之后呈现?

1 个答案:

答案 0 :(得分:-2)

我也遇到了这个问题。这是一种非常普通的用户体验。正如您所说,您可以通过更新徽标并在配置过程中应用备用CSS来限制它,但您仍然可以获得明显的闪烁。我一直在尝试在进程开始时将body-hidden添加到body标签,然后在结束时删除它,但它没有多大帮助。我可能会看到通过备用css将身体从一开始隐藏起来,然后在injector.js文件中覆盖该样式。不过,任何其他人的建议都会受到高度赞赏。 PnP只有一个基本的注入器场景,它将消息放入状态区域,但这不是一个真实的场景。