【问题标题】:'User is typing a message' function...?'用户正在输入消息' 功能...?
【发布时间】:2011-05-24 14:50:51
【问题描述】:

只是要指出,我指的是用 PHP/jQuery 编写的聊天系统,您在底部看到“用户正在输入消息......”我尝试了很多方法来完成它,但都失败了,我用 PHP + MySQL/Ajax + jQuery 构建了我自己的聊天系统。

我不是要求有人为我编写函数,只是为了给我一个小例子,以便我知道该怎么做。

非常感谢,在此先感谢:)

【问题讨论】:

    标签: php jquery mysql ajax chat


    【解决方案1】:

    使用计时器发送 AJAX 请求 onkeyup,告诉数据库用户正在输入,另一方面,当您拉下聊天消息时,您可以通知对方他们正在输入。

    看看 doTimeOut,它有一个很好的 javascript debounce 示例...

    http://benalman.com/code/projects/jquery-dotimeout/examples/debouncing/

    【讨论】:

    • 所以基本上告诉数据库用户正在输入一条消息,然后在下拉聊天消息期间使用该标志?
    • 在 db 中存储 isTyping 变量很容易用不必要的数据填充 db。是否有其他方法可以将此标志从客户端“移交”到客户端? @bennyyboi 你能和我们分享你的解决方案吗?
    【解决方案2】:

    您可以尝试检查您的消息文本框是否每隔 n 秒填充一次。如果是这样,请触发服务器请求以更新两个用户之间的状态。

    【讨论】:

    • 我想我尝试过检查文本框何时填满并触发超时,但问题是它从未在访客浏览器上显示,因为我在笔记本电脑和个人电脑之间进行了测试。
    【解决方案3】:

    如果在聊天窗口中按下任何键,则使用 JavaScript 每(假设)2 秒检查一次。如果是,则发送一个 Ajax 请求,告诉您的应用程序用户正在输入内容。

    【讨论】:

      【解决方案4】:

      很简单,选择聊天消息的文本框。然后使用 jquery .keydown 进行选择,然后将 ajax 发送到 php 以从其他用户正在键入的数据库中向用户发送电话。

      【讨论】:

        猜你喜欢
        • 2017-09-18
        • 1970-01-01
        • 2012-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-04
        相关资源
        最近更新 更多