所以我有一个动态创建的播放列表,用户通过搜索歌曲创建。当页面刷新时,我希望这样做,所有的歌曲都停留在那里。
存储播放列表的最佳方式是什么?
我尝试过使用Persist.js,但存储的数组如下:
[["title":"song name", "artist":"someartist"], ["title":"another song", "artist":"one more"]]
始终使数组显示为:
["title", "song name", "artist", "someartist", "title"...]
不是我想要的。如果播放列表变大,还不确定是否最好。
那么什么时候创建服务器会话会更好?或者只是将所有歌曲存储到数据库中?
感谢。
答案 0 :(得分:1)
您可以将数组保存为JSON对象,该对象只是存储为字符串。通过这种方式,您可以轻松地将其存储为会话变量。
$_SESSION['test'] = json_encode($myArray);
$loadedArray = json_decode($_SESSION['test']);
如果您希望将列表存储任何时间长度,我建议将其存储在数据库中,尤其是在您不知道列表有多大的情况下。或者,您可以在数组长度上设置一个上限并在说出前20个后丢弃所有曲目。
答案 1 :(得分:1)
您还可以将它们存储为URL哈希值,然后在页面加载时将其读入并加载歌曲。
如果通过PHP加载歌曲,您可以将它们设置为cookie,然后让PHP读取cookie。
此外,如果他们是通过PHP加载而你不想使用cookie,你可以让php回显内联脚本(以便在整页加载之前执行),如果URL中有哈希值将用户重定向到哈希值已转换为GET值的页面,然后由PHP读取。