Blazor RichTextEditor 未在 Azure 中显示内容。在本地主机上工作

Blazor RichTextEditor not showing contents in Azure. Works in Localhost

在我的 XAF 21.2.4 Entity Framework Blazor 应用程序中(使用 Office 选项)

有一个业务对象 属性 标记为

    [EditorAlias(EditorAliases.RichTextPropertyEditor)]
    public string Info { get; set; }

当我 运行 本地主机中的应用程序时,富文本编辑器可以正确显示内容。

但是当我部署到 Azure 应用程序时 (Windows) 没有显示任何内容。

我注意到 Chrome 浏览器工具中有一条消息

[Violation] Forced reflow while executing JavaScript took 43ms

[Violation] Forced reflow while executing JavaScript took 43ms

Javascript 代码导致浏览器在 运行 期间启动样式和布局计算。

此外,我们可能 运行 两次昂贵的样式和布局计算 – 我们的 javascript 现在需要更长的时间才能 运行。

然而,它们值得研究和修复以提高应用程序的质量。这样做的方法是注意消息出现的情况,并进行性能测试以缩小问题发生的范围。开始性能测试的最简单方法是插入一些这样的代码:

function someMethodIThinkMightBeSlow() {
    const startTime = performance.now();

    // Do the normal stuff for this function

    const duration = performance.now() - startTime;
    console.log(`someMethodIThinkMightBeSlow took ${duration}ms`);
}

如果你想更高级,你也可以使用Chrome's profiler, or make use of a benchmarking library like this one

一旦您发现一些耗时较长的代码(50 毫秒是 Chrome 的阈值),您有几个选择:

  1. 删除 some/all 可能不必要的任务
  2. 弄清楚如何更快地完成相同的任务
  3. 将代码分成多个异步步骤

(1) 和 (2) 可能很难或不可能,但有时真的很容易,应该是您的第一次尝试。如果需要,应该始终可以执行 (3)。为此,您将使用类似的东西:

setTimeout(functionToRunVerySoonButNotNow);

// This one is not available natively in IE, but there are polyfills available.
Promise.resolve().then(functionToRunVerySoonButNotNow);

您可以阅读有关 JavaScript here 的异步性质的更多信息。

如何解决强制回流?

您只需要避免在同一 CRP 中发生 DOM 突变后进行 DOM 测量。

详情请参考Blazored TextEditor and this