我目前正在開發基於網絡的音樂播放器。我遇到的問題是從數據庫中提取所有歌曲的列表並將其發送給客戶端。客戶端能夠動態創建播放列表,因此他們必須有權訪問整個庫的列表。這個庫可以播放20,000首獨特的歌曲。通過http發送超大型播放列表數據的最有效方式是什麼?
{
id: "1",
cover: "http://example.com/AlbumArt.jpg",
name: "Track Name",
time: "3:15",
album: "Album Name",
disc: (1, 2),
year: "1969",
mp3: "http://example.com/Mp3Stream.mp3"
},
{
id: "2",
...
}
什麼是動態將該信息發送給客戶最好的方法:我使用Django和這個初步計劃準備在服務器端的數據?我應該使用jSON嗎? jSON能否有效地發送這個由20,000個條目組成的文本文件?是否有可能將此播放列表緩存在客戶端,因此,每次用戶登錄時都不會發生這麼大的請求,而只有在數據庫發生變化時纔會發生這種巨大的請求。
基本上,我現在需要的是一種可靠的方法,用於傳輸基於文本的播放列表,該播放列表由大約20000個對象組成,每個對象都有自己的屬性(名稱,大小等等),並以及時的方式。有點像谷歌音樂。當你登錄時,你會看到你的歌曲庫中的所有歌曲。他們如何發送這個列表?
想到的另一個小問題是,瀏覽器(主要是Chrome)是否可以處理這些數據量而不犧牲可用性?
非常感謝您的幫助!
爲什麼不使用某種無限滾動還是分頁?用戶是否絕對需要一次查看所有20,000個? – Blender
我建議使用本地存儲。你可以谷歌有關html5本地存儲並使用它。 – sandeep
這是我被告知的。我要做的設計與Itunes/MusicBee/FooBar類似,您可以在其中查看您的庫列表。我想到無限滾動的問題是,當用戶正在尋找從庫中添加新歌曲到用戶創建的播放列表時,用戶會想到特定的歌曲,並且將不得不求助於多個滾動 - >等待新的數據 - >滾動更多 - >等待新數據...如果他們有一個完整的清單,我認爲它會更友好。 @Blender – DonJuma