本地接收一個對象(或者音樂ID)數組。
從數據庫獲取到時,能夠按照音樂ID升序/降序。前端
而後前端將數組順序打散成隨機數組。
(【參考連接】JS隨機打亂數組)數據庫
從數組第一項開始播放歌曲。
每播放一首歌曲,就從列表移除第一項。數組
同時,AJAX把正在播放的歌曲ID傳給服務器。
服務器能夠在USER表(或者HISTORY表)裏新建字段,記錄歌曲ID播放記錄。
如能夠用逗號隔開。服務器
當用戶還未循環完畢當前數組,就關閉頁面後。
用戶再次打開頁面的話。
服務器能夠返回處理(篩選)後的數組。也能夠前端進行篩選。
再次打亂順序,繼續播放。.net
也能夠考慮:播放完一首歌曲後,直接把餘下的數組(的music_id)傳到服務器。
這樣不用作額外的轉化。還能保證上一次的隨機數組不變。
但這樣作,每次就傳輸了太多(沒有用)的數據。
你們能夠根據實際狀況選擇。htm
以上是我本身作項目的一點思路。歡迎各位提出意見。對象