保存项目到收藏列表的最佳方法- PHP, JS或组合


Best method for saving items to a favourites list - PHP, JS, or a combination?

我目前正在为一家招聘公司重新开发一个新的网站。他们在网站上有数千个工作岗位,分为不同的职业、等级、专业和地点。

目前,该网站使用PHP构建所有页面,但在平面html中缓存所有动态页面,以加快网站的加载速度。他们每隔几天就会更新数据库上的作业,并清除缓存以显示效果。

在新版本的网站上,客户端有一个要求的功能,允许用户在候选列表中保存他们最喜欢的工作。

我的问题是这样的。我知道我可以很容易地在php中做到这一点,但这种方法需要放弃当前的缓存系统,所以它会减慢网站的速度(谷歌越来越多地在其排名算法中使用网站速度)。良好的自然搜索引擎性能在这一行是至关重要的。

我可以使用纯javascript构建一个工作候选名单系统-并允许它在您浏览时跨页面共享数据吗?这可能使用cookie吗?或会话吗?该站点已经使用query作为其js交互的基础。

还是最好的方法是js和php的组合?

任何帮助规划此功能将非常感激。我宁愿在正确的道路上开始,也不愿在意识到错误之前走到一半!

是的,你可以用javascript做到这一点。我自己是一个Dojo家伙,但它很容易用jQuery完成。

看一下jquery的cookie插件:https://github.com/carhartl/jquery-cookie

也看看主干JS: http://documentcloud.github.com/backbone/#View
使用Backbone将允许您使用MVC设计模式创建列表。
具体来看一下todo列表的例子:http://documentcloud.github.com/backbone/examples/todos/index.html
点击"查看带注释的源代码"查看完整的带注释的源代码

对待办事项列表进行一些修改,您应该有您的工作列表。然后cookie插件将为您提供持久性。

正如Ali所说,您绝对可以使用cookie和jquery来做到这一点。

但是,需要考虑的一点是,数据将存储在特定的计算机上,而不是存储在用户的帐户中。所以,如果我在家里浏览你的网站,在我的候选名单上添加了一堆工作,然后去工作,决定继续做下去,我的候选名单就会消失。因此,虽然纯js和cookie的解决方案会很好,因为它不会干扰当前的页面缓存系统,但它不会提供最佳的用户体验。

要做到这一点,您必须php并将候选列表存储在数据库中。不过,大多数php框架都支持部分页面缓存。所以你可以从html中提供大部分页面,然后添加一个动态生成的部分,这将是你的候选名单代码。这个解决方案可能会做更多的工作,但最终会更好。