Webflow 的使命是為每個人帶來

Buy Database Forum Highlights Big Data’s Global Impact
Post Reply
mahmud211
Posts: 5
Joined: Wed Dec 04, 2024 4:23 am

Webflow 的使命是為每個人帶來

Post by mahmud211 »

開發超能力2023 年 8 月,我們發布了首個Designer API,使開發人員能夠與 Webflow Designer 進行互動。開發人員立即開始創建功能強大的應用程序,以使 Webflow 用戶能夠建立更快、更豐富的網站。隨著這些 API 的推出,功能請求開始滾滾而來,以建立新的功能,我們意識到,為了充分利用 Designer 的全部功能,我們需要採用不同的方法來建立 API。這種重新架構 (V2) 帶來了一些效能挑戰,這些挑戰透過多方面的方法解決了。

設計器 API V1 與 V2
如第 1 部分所述,目前的 Designer API (V2) 旨在針對每個 API 請求與我們的內部應用程式邏輯進行即時通信,這是我們的 V1 API 不具備的功能。下面的範例示範如何為 V1 和 V2 編寫相同的程式碼:

我們改變了保留所有 API 資料的方法,包括元素、頁面和樣式。執行 V1 API 時,更新儲存在記憶體中,並且在呼叫 save() API 之前不會持久儲存到 Webflow Designer。這使得處理批量物件的效能更高,但這也帶來了許多缺點:

我們無法立即驗證 API 的輸入。這意味著未能及 阿根廷 電話號碼資源 早發現故障,我們必須限制某些功能以避免安全問題。

Image

要充分利用設計器內部邏輯的力量是不可能的。例如,在 V1 中,您無法像在 V2 中那樣使用Element Presets建立任何類型的元素。
最終,我們受到使用 V1 架構能夠建構的 API 的限制。

初步優化
隨著開發人員從 V1 過渡到 V2,我們開始收到執行批次操作(例如將數十個元素插入畫布或同時更新所有頁面元資料值)時出現效能問題的報告。 V2 API 改變了請求的處理方式;應用程式現在為每個單獨的 API 呼叫發送一個請求,而不是像 V1 那樣批量處理請求並為每組操作發送一次。因此,我們需要優化 V2 中批次操作的處理,以符合 V1 的效能。

我們透過針對使用率高且效能成本高的 API 開始效能調查,特別是對於較大的站點。這些 API 是我們的元素插入 API ( append、prepend、before、 & after)。


我們透過建立一個新函數 引入了一個小但有影響力的更改,findPath該函數在找到頁面上元素的第一個實例後停止迭代。此最佳化減少了迭代次數,從而使 API 執行時間減少了 50%(對於較大的站點,減少的幅度更大)。雖然這是一個顯著的改進,但我們注意到,當快速連續呼叫多次時,API 仍然比理想情況慢。現在每個 API 呼叫平均約為 20 毫秒,但與我們的 V1 API 相比,一次插入數十個元素仍然較慢。

進一步分析
初步優化後,我們退一步考慮整個 API 生命週期。借助 V2 API,我們現在可以在每次呼叫 API 時與設計器進行通訊。這本質上有三個主要的開銷來源。
Post Reply