Javascript phonegap聊天应用程序用户可以查看其他消息

Javascript phonegap聊天应用程序用户可以查看其他消息,javascript,jquery,iphone,ajax,cordova,Javascript,Jquery,Iphone,Ajax,Cordova,我正在使用phonegap开发一对一聊天应用程序。我的问题是当用户单击联系人并发送消息时。然后用户单击返回按钮并单击另一个联系人,它仍然可以看到他刚刚发送给第一个用户的消息 以下是我代码的一部分: 这里是使用ajax从服务器获取联系人。当它成功时,它将生成一个列表视图来显示所有联系人。 $。每个(联系人、功能(i、项目) { 输出+='; $(“#联系人列表”).html(输出).listview('refresh'); //在聊天页面的正面显示联系人姓名 $(“#联系人列表”).childr

我正在使用phonegap开发一对一聊天应用程序。我的问题是当用户单击联系人并发送消息时。然后用户单击返回按钮并单击另一个联系人,它仍然可以看到他刚刚发送给第一个用户的消息

以下是我代码的一部分:

这里是使用ajax从服务器获取联系人。当它成功时,它将生成一个列表视图来显示所有联系人。

$。每个(联系人、功能(i、项目)
{
输出+=';
$(“#联系人列表”).html(输出).listview('refresh');
//在聊天页面的正面显示联系人姓名
$(“#联系人列表”).children('li').on('click',函数()
{
var contact_name=$(this.attr('data-name');
$('contact_name').html(contact_name);
获取您的姓名(联系人姓名);
});
});

消息:
发送
这里是ajax代码的一部分,我使用ajax获取聊天数据,然后将它们附加到我的聊天页面中

success: function(data)
                 {
                 var get_data = JSON.parse(data);

                 $("#incomingMessages").append
                 (
                  "<div class='message'><span class='username'>" +
                  (get_data.from || 'Anonymous') +"</span> : " +
                  (get_data.message || ' ') + "</br>" +
                  (get_data.message_time || ' ')
                  +"</div>"
                  );
                 }
                 });
成功:函数(数据)
{
var get_data=JSON.parse(数据);
$(“#incomingMessages”)。追加
(
"" +
(从| |'匿名')+”获取_数据:“+
(获取_data.message | |“”)+“
”+ (获取_data.message|u time|“”) +"" ); } });
我知道原因是,当用户单击“联系”时,它将始终转到同一页面,这就是为什么所有用户都可以看到该消息的原因

有什么解决办法吗

提前感谢。

切换用户时,您应该清除
#incomingMessages
。当您想用新用户的消息替换HTML内容时,可能会将其留在该div中

差不多


html(“”)

一个简单的解决方案是使用本地存储来存储每个用户的历史记录(
#incomingMessages
)和
#messageText


然后,您可以清除
#messageText
,并在用户重新打开聊天时重新加载它。

可能与此无关,但您的html不正确。有一个rogue
,字段集中的div在字段集中没有关闭,还有一个rogue
和结尾。是的,你说得对,谢谢!!我已经考虑过了。我所做的是$('.'goBackButton')。单击(function(){$('.message')。empty();$(“#messageText”).val('.');然而,如果我这样做,用户将看不到他的历史聊天信息,因为它已设置为空。我认为唯一可以解决的方法是按照您所说的,然后在用户单击联系人姓名时使用ajax从服务器获取历史信息。但我想一定有更好的解决方案。
<!--When someone click a user in contacts, it will show the chat page-->
<div data-role="page" id="chat_page" data-role="page" data-theme="a">
<div data-role="header">
  <h1 id="contact_name"></h1>
</div>

<div data-role="content">
  <div id="incomingMessages" name="incomingMessages" class="msgContainerDiv" > 
  </div>
  <label for="messageText"><strong>Message:</strong></label>
  <textarea id="messageText"></textarea>

</div>

<div data-role="footer">

  <fieldset class="ui-grid-a">
    <div class="ui-block-a">
      <a href="#contacts_page" id="goBackButton" data-role="button">Go Back</a>  
    </div>
    <div class="ui-block-b">
      <button data-theme="a" id="chatSendButton" name="chatSendButton">Send
</input>
  </fieldset>

</div>

</div>
success: function(data)
                 {
                 var get_data = JSON.parse(data);

                 $("#incomingMessages").append
                 (
                  "<div class='message'><span class='username'>" +
                  (get_data.from || 'Anonymous') +"</span> : " +
                  (get_data.message || ' ') + "</br>" +
                  (get_data.message_time || ' ')
                  +"</div>"
                  );
                 }
                 });