Gutenberg 贡献者讨论使用 iframe 构建元框的缺点
已发表: 2017-11-04
关于 Gutenberg 将 iframe 用于元框的热烈而富有成效的讨论正在 GitHub 上进行。 昨天,WordPress 开发人员 Kevin Hoffman 创建了一个题为“iframe 是元框的可行长期解决方案吗?”的问题。
Gutenberg 1.5 引入了对元框的初始支持。 Hoffman 发现了随着开发人员开始测试当前的元框实现而出现的 iframe 的几个问题。 他做了一些性能测试,发现 Gutenberg 对 iframe 的使用使资产请求的数量增加了三倍,因为它将父窗口和所有 iframe 中的所有 CSS 和 JS 资产排入队列。

“一般来说,多年来,iframe 在 Web 开发中一直不鼓励使用,原因有据可查,”Hoffman 说道,然后引用了插件开发人员在测试 Gutenberg 的元框支持时已经发现的一系列问题。 “是否可以在不修改生成元框的主题或插件的情况下解决这些问题? 我们必须考虑到,多年来支持元框的第三方代码可能没有更新的奢侈,以便在 iframe 中兼容。”
Gutenberg 设计负责人 Tammie Lister 回应了 Hoffman 的担忧,表示当前元框的实现只是一个实验,不一定会在 WordPress 5.0 中实现:
想一想我们今天在古腾堡的元盒是一个实验是很好的,在许多方面它是一个持有模式,因为该项目正在制定方向。 说它是“暂时”有效的,但不是我们会附带的。
综上所述,我认为重要的是看看未来元框将用于什么。 哪些情况(如果有)不会转换为块? 所有元盒都必须在移动设备上工作吗? 是否还有我们尚未探索的替代界面? 我敢打赌有。 现在,它是关于寻找这些可能性并走上一条适合现在和未来国家的道路。
在 Gutenberg 1.5 发布并宣布“此版本包括期待已久的元盒支持(需要测试!)”之后,将此实现作为“暂时有效”(但不会发布)的实验进行演示,这令人惊讶。
Hoffman 争辩说,iframe 方法甚至“现在”都行不通,因为这个问题被打开是为了引用几个主要的破坏方式。 如果 Gutenberg 继续采用当前的方法,则需要修改许多插件才能与 WordPress 5.0 兼容,Hoffman 表示这将破坏支持遗留元框的全部目的。
“迄今为止,我还没有看到任何证据表明元盒将继续与古腾堡合作,”霍夫曼说。 “如果答案是否定的,那么我们应该停止假装 5.0 只是另一个 WordPress 版本,并开始诚实地打破向后兼容性。”
该项目的合作者 Edwin Cromley 表示,该团队预计某些主题和插件将被破坏,并且不可能适应所有可能的用例。 他承认 iframe 解决方案可能无法满足项目的目标。 相反,他主张为绝大多数用户创造最佳体验。
但是,当前的方法会对许多主要将 WordPress 用作带有元框的 CMS 的网站产生不利影响。 WordPress 核心提交者 Scott Taylor 表达了对自定义帖子类型的担忧,其中许多不使用传统的“内容”部分而仅支持元框。
“在当前的迭代中,元框支持是一个附加组件,而在许多人的现实中,元框是 UI、API,是他们用来组成 CMS 的机制,”Taylor 说。 “iframe 是古拉格。

“而且我们忘记了 WP 永远建立的价值观:我应该能够更新到 WP 的最新版本,并且无需重写任何内容。 我在 WP 上有很多项目,我再也不会碰了。 我能相信他们中的一些人不会因为这种变化而疯狂崩溃吗?”
Hoffman 主张缩小项目的范围以专注于编辑器组件,这是许多插件开发人员共享的流行观点,并且在 Yoast 的帖子中详细说明了这一观点,提出了 Gutenberg 的替代方法。 这种方法将编辑屏幕的更改分阶段进行,让开发人员有更多时间更新他们的插件,并允许 Gutenberg 团队为元框找到适当的解决方案。

“我认为,如果古腾堡坚持彻底改革编辑器而不是接管整个页面,那么这个目标会更容易实现,”霍夫曼说。 “然后我们可以保留现有的钩子,元框可以像现在一样继续相互通信。 此外,资产入队将不是问题,因为它会像今天一样工作。
“我非常同意 Yoast 提出的这个概念,在我看来,它会保留已经完成的大部分工作,同时缩小项目范围以专注于编辑器组件。”
Gutenberg 工程师 Riad Benguella 表示,该团队并不太热衷于实现这一概念。
“重用古腾堡的作品来构建这个概念是相对可行的,但这不是我们想要优化的用户体验,我们希望首先构建最好的编辑器,并使其可供人们使用,而无需担心向后兼容性问题(全新安装,没有元框...... ),”本格拉说。
“当我们认为古腾堡的理想愿景已经准备好发布时,我们将有时间讨论升级路径策略,像这样的概念是升级路径的一种选择,但绝对不是最终产品。 其他升级路径也是可能的。”
然而,WordPress 开发者社区不赞成再次推迟讨论。 许多人渴望最终回答元框如何适应古腾堡编辑器的上下文的问题,以便他们知道如何准备。 鉴于 iframe 方法存在许多问题,在新编辑器下渲染遗留的 PHP 元框将需要更多的实验,并且可能需要替代解决方案。
“如果它不能与现有网站兼容,为什么要花费数千小时来开发理想的编辑器?” 霍夫曼说。 “如果第一印象是它破坏了他们所依赖的 UI,那么用户一开始就永远不会体验到理想的编辑器。”
WordPress 核心提交者 Aaron Jorbin 说:“我认为把它推迟得太远可能是一个错误。” “特别是因为许多组织将需要至少 1-2 个季度的时间来准备。”
Mark Kaplun 建议 Gutenberg 团队使用一个流行的插件作为衡量当前和未来元盒支持实验成功与否的标准。
“我的富有成效的建议是,只要 Yoast SEO 不能在其中正常工作,就不要宣布元框准备就绪,”Kaplun 说。 “它在交互方面有点复杂,而且它安装在大量的网站上。 如果古腾堡不能使用它,可能没有人会使用它。”
Greg Schoppe 已经对 Gutenberg 的持续开发进行了广泛的测试和撰写,他也加入了对话,以倡导 Yoast 对该项目的替代方法。
“我非常支持 Yoast 对 Gutenberg 的看法,”Schoppe 说。 “我不清楚古腾堡团队如何将‘升级可视化编辑器’重新解释为‘替换整个后期编辑界面’,但它似乎与所谓的‘忒修斯之船’直接不一致。”
“在这种情况下,缺乏明确的方向和对现有标准工作流程的支持现在正在积极地伤害开发人员。 如果没有一组值得信赖的钩子和工具,我该如何继续构建项目? 认为这样一个大型软件项目会在一次更新中完全颠覆开发人员的标准工作流程是不合情理的。 令人疯狂的是,这些对话现在才刚刚发生,即 11 月,当时计划是在年初批准合并。”
昨天关于元框的 iframe 方法的讨论仍然相对较新,但到目前为止,古腾堡团队的回应未能充分解决该线程中开发人员社区的担忧。 找到一种保留 WordPress 强大的 CMS 功能的元框方法,同时不会疏远用户和开发人员,是 Gutenberg 团队面临的最大挑战之一。 他们的目标仍是明年初提出合并提案,但元框仍处于试验阶段,团队预期的时间表继续使该项目与 WordPress 开发人员社区发生冲突。
