javascript - PHP 和 JS 中 cookie 数组的最佳性能选择?

标签 javascript php arrays json cookies

您好,我有一个网站,其中包含数百个电视节目和数万集。我希望用户(未登录)能够保存他最喜欢的节目并标记他观看过的剧集并使用 cookie 保存这些数据。

所以我已经用 PHP 和 JS 实现了它。我只是想知道关于 cookie 数组的最佳选择是什么。

现在我将数据保存在名为“收藏夹”的 cookie 中,这是一个 JSON 编码数组,仅包含电视节目的 ID。 在“已观看”cookie 中,有用户标记为已观看的剧集的 ID。

性能和内存的最佳选择是什么?您必须记住,这也适用于手机,因此,如果用户将数千集标记为已观看,我不希望这会减慢一切。

下面的代码不是真正的代码,只是为了让您了解选项之间的区别。

选项 1

一个名为“watched”的 cookie,它是一个包含 ID 的 JSON 编码数组。我需要检查数组是否包含该值

$_COOKIE['watched'] = array(1,2,3,4,...)

使用此选项,在电视节目页面中,我总是必须选择整个数组并检查每个剧集 ID 是否是数组中的一个值。

选项 2

每个 ID 一个 cookie,例如称为“watched_[ID]”。我只是检查它是否存在。

exists( $_COOKIE['watched_1'] ) ? watched : !watched
exists( $_COOKIE['watched_2'] ) ? watched : !watched

选项 3

一个名为“watched”的 cookie,它是一个关联的 JSON 编码数组,包含每个电视节目的数组,例如“watched[show_ID]”,其中每个仅包含标记为已观看的剧集的 ID到那个节目。 (因此在电视节目页面中,我首先检查“已观看[show_ID]”,然后我已经拥有所有已观看的剧集,而不是将每个剧集 ID 与选项 1 中的数组“已观看”进行比较

$_COOKIE['watched'] = array(
               1 => array(1,2,3),
               2 => array(4,5,6)
)

最佳答案

您选择的方法将完全取决于您拥有的用户类型,如果您的情况下数据量通常很大,那么您应该选择选项 3,因为关联数组是处理大数据量的好方法,因为它循环遍历它们并获得结果会有些容易。

如果您的用户数据集相当小,那么选项 2 是最佳方法,因为我们为每个节目设置了不同的 cookie,您可以立即检查相应的值。

此外,我希望您通过 html5 api 使用索引数据库作为您的问题的解决方案,因为它提供客户端数据库,而且它是一个持久数据库。 希望这有帮助

关于javascript - PHP 和 JS 中 cookie 数组的最佳性能选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37702753/

相关文章:

javascript - PyQt (PySide)、WebKit 和从/向 Javascript 公开方法

php - 如何在 Laravel Eloquent 查询(或使用查询生成器)中为表起别名?

php - 将数组从 javascript 发送到 php 无法正常工作

javascript - 创建一个时间间隔,使函数在 JavaScript 中随机运行

javascript - 在文本中查找电话号码和具体格式以及电子邮件,我正在使用 javascript ReactJs

php - 图像随机损坏(但刷新后加载)并显示 "Resource interpreted as Image but transferred with MIME type text/html"

未加载 php oci8 模块(ubuntu 16)

Java为什么这个数组等于打印错误?

c - 当数据类型和返回类型从 int 更改为 float 或 double 时,行列式函数中出现段错误

javascript - DOJO 和 DIJIT 无法解析相同的 ID 两次?