【问题标题】:Longpolling with php jquery ajax使用 php jquery ajax 进行长轮询
【发布时间】:2014-02-22 15:02:53
【问题描述】:

我在通知系统中使用长轮询技术..这里的长轮询通过检查数据库表的唯一 id 来工作..如果它大于最后更改的 id 则获取数据..效果很好...

我想知道如何实现长轮询技术来获取最近更新和删除的任何行的值...传统的短轮询最终会通过不时戳数据库来完成...但是在长轮询请求保持打开状态..假设我有 已插入 4 行...

id name body

1    A  blah
2    B  blah
3    C  blah
4    D  blah

如果现在最后插入的行有变化...

4    D  abcd

长轮询技术不会获取更新的部分..

或者如果 id 为 2 的行被删除..那么它也不会工作...

谁能推荐一个方法?不使用短轮询..因为我不希望那样......

【问题讨论】:

    标签: php long-polling


    【解决方案1】:

    您应该添加一个名为“revision”的新列。修订是每个“动作”的自动增量,而不是每行。

    它必须是一个正常的索引。

    所以你是这样开始的:

    Id Name Revision
    1 aaaa.   1
    2 bbbb.   2
    3 cccc.    3
    4 dddd.   4
    

    那么当您更新第 4 行时,修订字段应为 5,如果更新第 2 行,则第 2 行的修订应为 6。

    对于删除,进行逻辑删除并更新该行的修订,这应该可以解决问题。

    您返回按修订排序。

    【讨论】:

    • 我不明白.. 如果我更新第 4 行,那么修订版怎么变成 5?在删除第 2 行时,它是如何变成第 6 行的?我无法理解其中的逻辑......
    • 是的......我有点理解逻辑......假设我删除第 2 行..那么修订版是 6,然后当我添加另一行时修订版是 7?对吗?
    • @user3184462 完全正确。客户端发送它当前所在的修订 ID。
    猜你喜欢
    • 2011-09-19
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2013-10-01
    • 2016-08-14
    相关资源
    最近更新 更多