在服务器端保存大型阵列的最佳方法

时间:2011-08-30 01:16:49

标签: php javascript html5

我目前正在使用HTML5 / Javascript中的网页,用户可以在其中记录一段时间内更改的滑块的值。例如,当用户单击“记录”时,计时器将启动,每次用户移动滑块时,其值将保存在数组中。当用户停止录制和播放时,所有滑块将在录制时“播放”。我将值存储在数组中,类似于:

array [3]:{timeStamp,idSlider,valueSlider}

该阵列实际上可以变得相当大,因为用户可以记录已经记录的设置而不会丢失前一个,这允许用户为同一时间戳更改多个滑块。

我现在希望能够在某个地方(在服务器端)保存这个数组,这样用户可以稍后返回网站,只加载其记录的设置,但我不确定最好的做法那。

我正在考虑一个数据库,但不确定从服务器保存和加载是否会有点慢,而且我的数据库容量非常小(在我的OVH服务器上大约25 Mo)。我想可能平均要保存800个条目。

也许在一个文件(XML?)中,但我不知道如何在我的服务器端保存它...

欢迎任何其他想法,因为我有点卡在这一点上。

谢谢&对不起任何英语错误,  干杯,  垫

5 个答案:

答案 0 :(得分:3)

serialize()json_encode(),将其另存为longtext数据库记录。

答案 1 :(得分:2)

我认为800并不像你想象的那么大。您可以将其保存到数据库并使用JSON进行传输。我相信数据库应该非常高效并且不会浪费大量存储空间,但这可能取决于您如何设置表。例如,不要使用char()列。

要查看哪个使用更多或更少的存储空间,您可以计算1000个条目将占用多少空间,然后将它们放入数据库中,看看它使用了多少空间以及它浪费了多少。

如果你真的在处理大量的物品,那么网络性能可能会成为你的第一个瓶颈。为了加载,我会将javascript流式传输到浏览器,以便浏览器不必将整个内容加载到内存中。此外,对于发送,您可能希望一次创建可管理的块(可能是1000块),并将它们发送到这些块中。但是,假设您正在处理更多数据。

答案 2 :(得分:1)

您可以尝试将整个json对象作为纯文本存储在特定于用户的文件中。这将使设置服务变得非常简单,因为简单的json需要进行评估。

虽然看起来有点不正统。当你说800个条目时,你的意思是 1. id:0,时间戳:XXXXXXXXXXXXX,idSlider:X等 2. id:1,时间戳:XXXXXXXXXXXXX,idSlider ....

或800个用户条目?因为您可以将整个对象保存在数据库中,并避免执行大量“costy”查询。

答案 3 :(得分:0)

如果您更关心存储大小而不是读/写性能,可以encode the array as json stringcompress it using zlib librarysave it as a file

答案 4 :(得分:0)

这是MongoDB的完美用例。