2015-07-03 148 views
2

這是一個通用和無技術問題。但是,如果對不同技術有不同的答案,請將cassandra作爲No SQL DB,將node.js作爲服務器端技術,將Java作爲客戶端技術,並使用JSON來描述對象數組。應該在服務器端還是客戶端訂購陣列

在服務器端或客戶端訂購一個對象數組的最佳實踐是什麼?

+0

Java作爲客戶端? –

+0

@SimoEndre是的,Android是更具體的 –

+1

我會說「也許」 - 你的服務器端擴展性如何,服務器端排序有多少性能成本,以及在客戶端排序有多慢?客戶通知)?客戶端設備對您來說是「免費」的計算機電源,服務器端會花費您的資源。同樣,對於「分頁」數據集,您必須在服務器上排序,以確定您所在的頁面。 –

回答

1

如果它與數據庫相關,然後在課程服務器端,因爲您可以在查詢中包含「按順序」刪除「asc」或「desc」,並且查詢會爲您排序,並避免所有問題在客戶端進行排序,不會增加android中的加載時間。

+0

當然,這取決於您的數據特徵和Cassandra db中的索引? –

+0

@AndyBrown感謝您的評論,每個查詢腳本編寫者都無法管理自己的時間在他們的查詢中包含「order by」,因此在我的腦海中,我隨意表達了自己的想法;) – GingerHead

1

鑑於客戶端平臺被指定爲Android,爲了降低客戶端的性能成本,我會對它進行服務器端排序。

+0

Android沒有任何內容處理它 - 數據集的硬件和大小/排序標準的複雜性。 –

4

一般的經驗法則是不相信客戶端。但是,我相信生活並不是黑白的,但它是灰色的陰影(不一定是50色的陰影,哈哈哈,笑話放在一邊)。我認爲這取決於數據大小以及如何使用它。如果數據不會動態變化,並且如果數據不會太大而導致客戶端系統停滯不前,那麼我認爲可以在客戶端進行投票。特別是如果用戶想按照她認爲合適的方式對各種標準的數據進行排序。

但是,如果數據是動態的或者它太大,則在服務器端更安全。

+0

如果你不能相信它正確排序,那麼你也不能相信它可以正確地執行其他任何操作。雖然「灰色陰影」+1。 –

+0

@AndyBrown我以前認爲或多或少都是一樣的。但是,JavaScript有點證明我們錯了。 ;)並感謝您的+1 – Alp

相關問題