我有一个网站,人们互相发送消息 最近我注意到有时同一条消息不止一次发送 例如,消息在三秒内发送四次或在一秒内发送两次 一旦用户点击发送消息的按钮,我不明白这是怎么发生的 因此,所有窗口切换和消息显示“邮件已成功发送”。 我检查过,如果用户在发送消息后刷新页面,那么真的会再次发送消息。 但我不认为是这种情况,因为消息会在一秒钟内发送两次。 我在vb.net写作并使用mysql数据库。 也许这与db的队列有关,我不知道。 我需要知道在哪里看 希望得到你的帮助
以下是代码:
函数调用: 调用GlobalFunction.update_mailbox_table(user_id,receiverId,txtMessage.Text,private_picture)
插入功能
Public Shared Sub update_mailbox_table(ByVal user_id As Integer, ByVal receiverId As Integer, ByVal message As String, ByVal privatePicture As Integer)
' update mailbox table
Dim connString As String = ConfigurationManager.ConnectionStrings("mysql_ConnString").ConnectionString
Using mysqlconn As New MySqlConnection(connString)
Dim sqlCommand As String = "INSERT INTO mailbox_table (FromId,Message,ToId,SendingDate,MsgStatus,PrivatePicture) VALUES (@FromId,@Message,@ToId,@SendingDate,@MsgStatus,@PrivatePicture)"
Dim mysqlcmd As New MySqlCommand(sqlCommand, mysqlconn)
Try
mysqlconn.Open()
mysqlcmd.Parameters.AddWithValue("@FromId", user_id)
mysqlcmd.Parameters.AddWithValue("@Message", message)
mysqlcmd.Parameters.AddWithValue("@ToId", receiverId)
mysqlcmd.Parameters.AddWithValue("@SendingDate", Date.Now)
mysqlcmd.Parameters.AddWithValue("@MsgStatus", 0)
mysqlcmd.Parameters.AddWithValue("@PrivatePicture", privatePicture)
mysqlcmd.ExecuteNonQuery()
Catch ex As Exception
sendToLog(ex, "problem to update mailbox table")
End Try
End Using
End Sub
答案 0 :(得分:0)
问题不在数据库代码中,我的通灵调试功能告诉我,你的用户双击你的提交按钮四次。
答案 1 :(得分:0)
您是否正在使用Javascript来显示消息客户端(即消息发送前 消息),或者您是否在发送消息后重新加载页面时显示消息?
如果您没有使用客户端脚本隐藏按钮,则用户可以在页面重新加载之前轻松单击几次。每次单击都会向服务器发送请求,但浏览器仅显示最后一次单击的响应。