我很难找到任何新记录插入表格。
我正在开发Penny拍卖网站。在我的网站中,我每秒使用JQuery更新客户端视图ajax.last bidder用户名,avater,价格和许多东西都更新。但是当我出价时,我想对特定产品实时应用flash效果{{3} }。我尝试了以下Mysql查询来查找是否有任何最后一次出价。
SELECT CASE WHEN COUNT(*)=0 THEN 'N' WHEN COUNT(*) > '0' THEN 'Y'
END AS is_bid FROM table_bid_history WHERE product_id = '$value' AND
( date_time BETWEEN DATE_SUB(NOW(), INTERVAL 1 SECOND) AND NOW() )
基本上,我将最后一个投标人详细信息存储在table_bid_history
表中,时间戳列为 date_time 。我每秒都向服务器端发送ajax请求,以使用递归函数获取最后一次更新。所以我的想法是减去1秒检查正确的时间所以我使用(date_time BETWEEN DATE_SUB(NOW(),INTERVAL 1 SECOND)和NOW())并且它正常工作。但在某些情况下,延迟的ajax轮询会使这个想法失败,这意味着ajax请求花费的时间超过1秒,所以我无法从服务器获得正确的结果。如果我使 INTERVAL 2 SECOND ,那么它会给出 Y 两次。所以我很困惑在这种情况下该怎么做。
请帮我把最后一项活动放在桌子上。他们是怎么做的。任何想法都将不胜感激!
提前致谢
答案 0 :(得分:2)
不是查询最后一秒是否有出价,而是查询自上次已知出价以来是否有任何新出价。因此,在您的jQuery代码中,存储您知道的最后一个出价的date_time
。然后,通过AJAX,查看您的table_bid_history
中是否有任何出价比jQuery脚本中存储的date_time
新date_time
。如果有,则闪存效果(当然,存储较新的date_time
以便稍后查询)。
PS:您可能想要查看长轮询。对于资源而言,这可能比每秒疯狂地重新检查更好。