如果用于創建專案的視圖包含一些下拉框/復選框/任何來自服務器的值,它是否應該發送單獨的請求來填充這些控制元件的值(每個資料集合一個請求),或者最好有一個單個 api 端點回傳填寫前端表單的所有必要資料?
為簡單起見,我在這里模擬了一個示例:假設我們正在為一家汽車服務公司構建一個應用程式,客戶可以在其中進行預約:

前端應用程式是否應該向api/models和發出 2 個 get 請求api/services,或者這些集合可以在單個回應中從服務器回傳(來自api/appointments/createformdata),關于此的最佳實踐是什么?
先感謝您!
uj5u.com熱心網友回復:
好吧,因為在您的示例中,兩個組合框都需要值,所以我會在第一頁加載時加載。除非這些組合框依賴于表單中的資料,否則不需要單獨的請求,然后在這種情況下,您別無選擇,只能等待用戶輸入來確定。
那么,假設您有兩個組合框,第二個組合框由第一個組合選擇級聯?嗯,第一個組合框不會改變 - 所以在頁面加載時加載它,無論如何你必須這樣做。沒有必要寫出單獨的事件或代碼來加載必須首先加載的第一個組合。
但是,第二個組合框?好吧,既然它的值是基于第一個的,那么再一次,你別無選擇,是嗎?
所以,我沒有看到任何真正的用例,如果兩個組合框彼此獨立,那么我認為幾乎沒有理由需要單獨的請求,并且只需在第一頁加載時加載兩個組合框即可這里還不夠?(那么您不需要任何單獨的請求)。
現在,如果有某種選項卡或 UI 并且用戶無法立即看到或使用組合框,或者甚至可能永遠不會從選項卡控制元件中選擇某個選項卡?好吧,好的,在這種情況下,您可以通過不填寫組合框來加速頁面加載,直到用戶到達表單的那部分(可能是一些彈出對話框,或者可能是某種向導步驟)。
但是,再一次,如果兩個組合框不相互依賴呢?然后我認為沒有理由使用兩個請求或事件來加載它們。但是話又說回來,它會引出一個問題,即您過去是如何加載組合框的?
我的意思是,如果每個組合框都是一些 ajax 呼叫,那么繼續使用其中的兩個,并保留兩個請求。由于嘗試合并或將填充兩個組合框的兩個 ajax 呼叫作為一個呼叫是一種痛苦,并且不遵循重用設計模式。結果是混亂的代碼,更糟糕的是迫使您撰寫執行兩件事的代碼。
我的意思是,如果您構建了一個很好的通用例程來呼叫 填寫組合框,然后繼續使用該代碼來填寫第二個。我不會炸毀非常好的作業代碼以某種方式填寫頁面上的兩個簡單組合框,并嘗試使用組合框外的一個請求來提交該檔案。
正如我所說的,如果組合框從頁面加載開始就在視圖中,那么第一頁加載時隱藏的代碼就是執行此操作的地方,除非出現一些相當大的性能問題。因此,您現在沒有任何單獨的請求來填寫組合,是嗎?
但話又說回來,一個組合框適合什么,30,也許 50 個選項,然后,你需要一個不同的用戶界面,因此,再一次,通過這樣做,你在性能方面沒有問題,做你?
如果您正在嘗試修復或避免性能問題?然后你在組合框中放了太多的選擇,這是錯誤的 ui 選擇,然后再一次,你沒有這個問題,是嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/342736.html
上一篇:無法匯入外部NPM包來制作角度庫
