如何在 Web 应用中实现实时预览功能?

Posted

技术标签:

【中文标题】如何在 Web 应用中实现实时预览功能?【英文标题】:How to accomplish live preview feature in a web app? 【发布时间】:2020-01-30 10:11:07 【问题描述】:

基本上,我们使用无头 CMS 来编辑网站 A 上的内容。我们正在基于无头 CMS API 构建自己的 CMS 用户界面(称为网站 CMS)。

现在,我们在网站 CMS 中有此页面,您可以在其中编辑左侧面板上的内容并在右侧面板(移动视图)上预览网站 A。

我以前没有做过类似的事情,我想知道实现这一点的最佳方法是什么,以及是否有任何库可以帮助实现此功能。

一些想法:

    在网站 CMS 中嵌入网站 A 以及在左侧面板上所做的任何更改基本上只会刷新网站 A(它只是嵌入到页面中)。 将网站 A 重新创建为网站 CMS 中的一个页面,并调用相同的 API,以便在网站 CMS 的网站 A 和实际的网站 A 上都发生更改。(尽管我不认为这会更有益并且会创建完全相同的页面有 2 个独立的代码库)。 其他???

我们使用的主要框架是这个 CMS UI 的 ReactJs。

【问题讨论】:

【参考方案1】:

您可以在 CMS 和网站 A 之间建立通信链接以交换数据。

选项

    您可以使用 iframe 将网站 A 嵌入网站 CMS 中,然后您可以使用 postMessage 在 CMS 和网站 A 之间交换数据。 否则,您可以使用 WebSockets,网站 A 将在 CMS 左侧面板上侦听所做的更改。

【讨论】:

【参考方案2】:

选项 2 是我会做的,不一定是重复的。

您希望用户能够在不发布更改的情况下预览更改。因此,移植真实网站与该目标不兼容。

代码重复可能很少。它将共享大部分相同的代码,并且传播速度也会更快。

【讨论】:

以上是关于如何在 Web 应用中实现实时预览功能?的主要内容,如果未能解决你的问题,请参考以下文章

用Java web 实现海康威视监控预览功能

请问JAVA如何实现打印及打印预览功能?

uniApp实现在线预览office文件,web端也可以。---web-view组件

Notepad++中实现Markdown语法高亮与实时预览

单张图片在线预览+图片压缩

C#12预览版释出,新功能一览