将一些自定义会话变量添加到JavaScript对象

时间:2009-01-01 23:01:08

标签: php jquery

我目前有一个自定义会话处理程序类,它只是建立在php的会话功能上(并且绑定在一些mySQL表中)。

我有各种各样的会话变量,最适合我的应用程序(主要保留在服务器端)。虽然我也使用jQuery来提高前端的可用性,但我想知道是否将一些会话变量(一些基础知识和一些浏览首选项id)提供给JS对象将是一个糟糕的方法。

目前,如果我需要在前端访问任何此类信息,我会向专门编写的php页面发出ajax请求以提供相应的响应,但我不确定这是否是最佳实践(实际上我是很确定这只会产生过多的Ajax请求。)

有没有人对此有任何意见?这是向客户端提供此类信息的最佳方式吗?

2 个答案:

答案 0 :(得分:0)

我真的认为这取决于很多因素。我总是在脑后“过早优化......”。

在早些年,我把我想到的每个小想法都赶到了应用程序中。这通常会导致“我让它变得很酷但我没有花时间完全掌握我正在努力解决的问题;无论如何还有问题吗?”

现在我使用明显的方法(比如你的)快速(在第一次尝试时没有完全牺牲性能),然后分析我是否遇到问题。

换句话说:

  1. 您需要多长时间从不同类型的已加载页面访问此信息(因为如果您在没有用户重新加载的情况下加载一次信息,那么无论如何重新获取它可能没什么意义)乘以并发数量客户端

  2. 如果您将信息写入客户端cookie以便快速访问JS,如果滥用(在未经申请许可的情况下进行修改),您的应用程序可能会受到损害吗?如果#1适用,则替换“JS”和“cookie”,而不使用WHATWG提出的任何类型的离线存储。

  3. “快速”方法适合我,因为往往没有对先前开发研究的大量投资。如果你已经仔细地做了......但是你可能已经知道答案了;)

    作为3.您可以随时将HTML推送到您的客户端,包括您在JS中需要的数据,这可能适用于您的情况。看看会有什么其他建议会很有趣!

    正如我所注意的那样:我已经将PHP会话存储在DB中,直到我将它们移动到memcached(警告:它是缓存而不是持久存储,所以对你来说可能不是一个好主意,我可以与它一起生活,我只是确保它始终运行)实现平均下降20%的数据库查询,并通过这一点90%的写查询。我甚至没有使用任何花哨的Ajax,只是并发用户的数量。

答案 1 :(得分:0)

我会说这肯定是一种过度的AJAX,这些会议是私密还是重要的,不向访客展示?只是扔掉它;对于两者而言,cookie是最简单的,将javascript对象中的数据设置为对访问者来说同样容易读取,当它归结为启用或未启用cookie时,如果没有cookie,则无论如何都不会有会话

http://www.quirksmode.org/js/cookies.html是关于JS中cookie处理的一个很好的来源,包括两个用于读写cookie的函数。