当textarea至少有一个字符时,有没有办法在聊天中实现“其他用户没有输入”,当他的textarea为空时“另一个用户正在输入”?
首先,如果用户按下按键,我想通过每2秒检查一次来实现这种“打字”功能,但我意识到这会使聊天过慢。当textarea不为空(用户正在键入)时以及当空 - 什么都不做时,它是一种简单的方法来提取信息。
谢谢。
答案 0 :(得分:2)
首先发送“正在输入”消息keyup
并使用window.setTimeout
在10秒左右后发送“未输入”消息。取消并重新安排每个键盘上的setTimeout。
下面未经测试的例子:
var input = document.getElementById('typeeBox');
var isTyping = false;
var timeoutId = 0;
function stoppedTyping() {
isTyping = false;
// Send not typing message.
// Update db status.
}
function startedTyping() {
if (!isTyping) {
// Send is typing message.
// Update db status.
isTyping = true;
timeoutId = window.setTimeout(stoppedTyping, 10000);
} else {
window.clearTimeout(timeoutId);
timeoutId = window.setTimeout(stoppedTyping, 10000);
}
}
input.addEventListener('keyup', startedTyping, false);