2015-12-14 78 views
1

我有一個基於AngularJS構建的應用程序,它可以定期(每秒500 kb - 1 Mb)通過RESTful Web服務檢索大量數據。我有一個負責檢索數據的中央服務。當服務成功檢索數據時,服務將數據分解爲邏輯塊並廣播數據可用。這個廣泛的演員被許多控制器接收並根據需要進行顯示。檢索大型數據集以跨多個控制器共享

由於這個單一的服務正在處理數據的檢索和邏輯分組,所以它做了很多並且變得非常複雜。有一個更好的方法嗎?我的檢索服務是否應使用其他服務將數據分發給這些單獨的控制器?這對我更有意義,但我擔心數據副本和內存。這些擔憂是否有根據?

+0

你使用'$ resource'還是其他類似的東西? –

+0

嗯...沒有。我使用低級''http.get(...)''來檢索數據。看起來''$ resource''只是''http''方法的高級包裝器,不是嗎? – cirrusio

回答

1

迴應...

我有一箇中心服務,這是負責檢索該 數據。當服務成功檢索數據時,服務 將數據分解爲邏輯數據塊和廣播,數據爲 可用。

......還有......

由於該單一的服務處理的檢索和邏輯 分組數據,那是相當的做了很多,已經變得非常複雜 。有一個更好的方法嗎?我的檢索 服務是否使用其他服務將數據分配給這些個人 控制器?

...通常,最好有single-responsibility文件 - 也就是說,每個文件的每個組件(例如控制器,工廠)都有一個責任。所以關於你的問題,這是一個很好的範例。兩個單獨的服務可以實現,其中一個負責數據的邏輯分塊,而另一個處理廣播數據可用性。

我還建議檢查以下指導原則,因爲這些可以極大地幫助您編寫代碼。

至於數據複製和內存的關注,這是一件好事,注意以下幾點 - 避免編碼樣式和已知造成這種問題的模式。不過,最好先嚐試和實施,看看這些問題是否會一路遇到。然後,從那裏開始。