QQ聊天之事件触发机制
01
”消息文本框“在没有信息的时候,“发送“按钮是灰色的(不可触发状态)
,当我们在发送”消息文本框“内输入信息以后,“发送”按钮变成蓝色(可触发状态)。
02
当我们点击“发送”按钮以后,发送消息的一段程序继续向下执行,给”消息文本框“赋值为空(string 消息文本框=”“),随后继续执行,使”发送按钮“变为灰色(不可触发状态)。反复执行上述操作进行聊天。
03
我在我的QQ上打开聊天界面在”消息文本框“给我同学发了一个”在“,然后点击”发送“按钮,”在“发了出去,消息文本框也变成了空,”发送“按钮变成了灰色(不可触发状态)。
04
当我退出聊天界面,进入主界面的时候,我给我同学发送消息的那个聊天框也未显示一个笔(表示有未发送的内容)
,当我再次打开那个聊天界面的时候,”消息文本框“里有一个”在“,而且”发送“按钮是蓝色的(可触发状态),然后我重复几次仍然是这样。
05
我猜测(电脑事件触发机制):应该是我在”消息文本框“输入“在”,然后点击”发送“按钮(可触发状态),触发发送消息的一段程序,由于点击”发送“按钮,“将消息文本框”的文本传到网络服务器和给”消息文本框“赋值为空(string 消息文本框=”“)的两端代码是几乎同时执行的,应该是先执行前者。在执行触发消息的一段小程序时,由于网络原因或硬件原因使程序紊乱,令发送到服务器的消息”在“发送到了服务器而且赋值给了“消息文本框”(string 消息文本框=”在“)。因为并不是我输入的”在“,所以在我退出聊天界面进入主界面并未显示一个笔(表示有未发送的内容)。
QQbug视频