需求是这样的 用户登录平台  根据后台设置 向用户发送消息1、不是所有用户都发送  向谁发送通过后台设置 像邮箱一样  输入用户账号,设置 发送时间(用户登陆后多久开始弹窗) 和发送内容,,
    选中的用户在登陆后 指定的时间后 就会弹出
平台每天有 100万用户 登录  如果我选中一个用户在他登录后十分弹出消息  请问 如何从这100万个用户中知道 像谁发送??  总不能每个用户登录 都要访问数据库 看看是否需要发送吧。。

解决方案 »

  1.   

    要是 每个用户都弹出  就在页面写个 setInterval("showMsg()", 600000); 十分钟后显示 关键我现在是  部分用户显示  小部分 
      

  2.   


    除了请求你的服务器之外,在本地Cookie记录那些人该请求,在什么时间段请求。
    这个方法,虽然Cookie也有清除掉的可能,但是并不是所有人都天天要清理Cookie的,还是可以抵挡或减少相当大部分用户群体的没必要请求的。
    只是为了恶意防止篡改,你在本地需要怎么加密保存那就是业务的事情了,一般情况下应当是不存在这一块儿的问题的。
      

  3.   

    说得不错!
    我的理解是:
    1、可是设计成 用户登录更改数据库某个已登录字段作为标示 例如1为已登录 当浏览器关闭或者用户登出时为0标示。
    2、这样就可以有一个临界的起始点,登录之后把当前的cookie记录下 即把1已登录的记录 如login=1 createdate登录时间也写入cookies
    3、然后你说的选中一个用户在他登录后十分钟弹出消息就可以已记录的createdate作为起始时间了。可以用异步方式处理 也可以jquery单独处理 这些都没必要每次访问数据库了 因为cookies已作记录。除非cookies失效或者用户禁用浏览器的cookies
      

  4.   

    如果是内网项目,可以考虑使用RIA技术,登录后记录登录的IP,然后后台进行推送。
    不然只能像楼上所说,数据库列中字段标识一下,然后在用户界面根据判断生成弹窗执行代码了。