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 開發人員社區發生衝突。
