【问题标题】:Best method for saving items to a favourites list - PHP, JS, or a combination?将项目保存到收藏夹列表的最佳方法 - PHP、JS 或组合?
【发布时间】:2011-09-16 09:27:14
【问题描述】:

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

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

在新版本的网站上,客户要求提供一项功能,允许用户将他们最喜欢的工作保存在候选名单中。

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

我可以使用纯 javascript 构建一个工作入围系统 - 并允许它在您导航时跨页面共享数据吗?可以使用cookies吗?还是会话?该网站已经使用查询作为其 js 交互的基础。

或者最好的方法是js和php结合?

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

【问题讨论】:

    标签: php javascript session cookies


    【解决方案1】:

    是的,您可以使用 javascript 来做到这一点。 我自己是一个 Dojo 人,但使用 jQuery 很容易完成。

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

    还可以看看 Backbone JS:http://documentcloud.github.com/backbone/#View
    使用 Backbone 将允许您使用 MVC 设计模式创建列表。
    具体查看待办事项列表示例:http://documentcloud.github.com/backbone/examples/todos/index.html
    单击“查看带注释的源代码”以查看完整的带注释源代码

    对待办事项列表进行一些修改后,您应该有自己的工作列表。然后cookie插件会让你坚持下去。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-30
        • 2015-08-03
        • 2020-10-24
        • 2014-02-19
        • 1970-01-01
        • 2014-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多