我一直在使用php,mysql开发一个AJAX聊天应用程序。现在差不多完成了;我面临的唯一问题是,用户键入其邮件以发布回复的文本框在异步ajax调用期间不断失去焦点。
这里发生的事情是我有两个div,它们通过两个不同的AJAX调用不断更新。一个用于在线用户,另一个用于消息列表。它工作得很好。为了给用户一个实时视图,我必须非常频繁地发出ajax调用,比如每2秒或接近一次。 ajax功能完美运行;只有在ajax调用正在进行且用户正在键入消息时,它才会失去焦点,用户必须单击浏览器中的其他位置并返回文本框再次键入。
感谢任何形式的帮助。最好的问候。
答案 0 :(得分:1)
您是否可以提供有关如何发起呼叫和处理其回复的更多详细信息?绝对不应该这样做。
举个例子,几乎每个自动完成实现都完全相同,但不会失去焦点。您输入一个输入框,输入框下方的div通过ajax调用不断更新自动完成选项/建议,而不会丢失输入框的焦点。
答案 1 :(得分:0)
一种懒惰的解决方法,如果它甚至可以工作,但是你可以在ajax调用中放置一个textbox.focus()来将焦点重新放回文本框吗?
答案 2 :(得分:0)
使用异步AJAX调用更新DOM元素不应干扰表单焦点。你可以发布一些代码吗?我认为没有代码我们几乎无法帮助你。
此外,您描述的症状也可能来自浏览器冻结。 AJAX通话期间和之后的处理有多重?