例如,如果我必須對資料庫中的資料陣列進行排序以將其附加到網頁的正文中。在性能方面,我應該在服務器端對其進行排序然后將其發送到客戶端還是應該按原樣發送資料并在客戶端對其進行排序還是沒有區別?
uj5u.com熱心網友回復:
這是初學者、中級和專家開發人員可能會遇到的常見問題。這確實是一個架構問題,最好用盡可能多的背景關系來回答。
你的 API 在什么平臺上運行?如果您在云中托管(AWS、Azure 等),您是否試圖通過最小化資源使用來最小化托管成本?如果是這樣,將這項作業推給客戶可能會在規模上有所幫助,但對于小型應用程式可能可以忽略不計。
你的客戶呢?您是否僅在企業環境中支持桌面計算機,您可以將其規范概括的可能性很高?或者計算資源最少的物聯網設備是否在聯系您的 API?在后一種情況下,客戶端設備可能沒有記憶體或計算能力來對資料進行排序,同時仍然滿足其其余職責。可能使用 10-20 年的移動設備呢?
這是您的 API 上的固定行為還是客戶端可以請求服務器端排序?您希望您的 API 提供什么樣的靈活性?為每個方面實作開關和引數的可行性如何?你在什么時候做的太多,用過多的按鈕和撥盤來配置或調整 API 的目的。
以我個人的經驗,我喜歡像 Sequelize 這樣的 ORM,它可以通過很少的作業在你的 API 上展現出很大的靈活性,但是這些工具可能會帶來計算成本和潛在的(但通常不常見的)安全問題。它們是非常通用的實作,并不總是適合您的用例。
uj5u.com熱心網友回復:
如果您在客戶端上執行此操作,那么無論客戶端計算機有多快,每個客戶端都必須對資料進行排序。它可能是開發人員的超強筆記本電腦,也可能是某人使用了 5 年的廉價 Android 手機。
如果你在服務器上做,那么服務器必須為每個客戶端對資料進行排序,你必須為計算資源付費。但是,您確實有機會快取??已排序的資料,這是一種節省(如果資料不經常更改)。
這里沒有一個萬能的答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/420788.html
標籤:
