PhoneGap聊天应用程序用户可以看到其他人的消息
phonegap chat application user can see others message
我正在使用phonegap开发一对一的聊天应用程序。我的问题是当用户单击联系人并发送消息时。然后用户单击返回按钮并单击另一个联系人,它仍然可以看到他刚刚发送给第一个用户的消息。
这是我代码的一部分:
这是使用ajax从服务器获取联系。成功后,它将生成一个列表视图以显示所有联系人。
$.each(contacts, function(i,item)
{
output += '<li data-name='+item+'><a href="#chat_page">' + item + '</a></li>';
$('#contacts_list').html(output).listview('refresh');
//Show the contact name on the front of chat page
$('#contacts_list').children('li').on('click', function ()
{
var contact_name=$(this).attr('data-name');
$('#contact_name').html(contact_name);
get_name(contact_name);
});
});
<!--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>
这是 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>"
);
}
});
我知道原因是当用户单击联系人时,它将始终转到同一页面,这就是为什么所有用户都可以看到消息的原因。
有什么解决方案吗?
提前谢谢。
一个简单的
解决方案是使用本地存储来存储每个用户的历史记录(#incomingMessages
)和#messageText
。
然后,您可以清除#messageText
并在用户重新打开聊天时重新加载它。
切换
用户时应清除#incomingMessages
。当您想用新用户的消息替换 HTML 内容时,您可能会将 HTML 内容保留在该div 中。
类似的东西
$('#incomingMessages').html('')
相关文章:
- Ajax聊天消息重复而不仅仅是更新
- 如果localstorage为空,则显示欢迎消息
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- 离开页面时弹出消息
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 消息显示之外的淘汰验证
- 选项卡侦听器未被来自后台脚本的消息激活
- jQuery在输入下验证post错误消息
- Scipt未在选定选项卡中执行以发送和接收消息
- 检查xmlhttprequest问题的消息
- AngularJs对ng消息的自定义替换
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- 当用户按下回车键时,自动在text区域/text中插入消息
- 如果消息框答案为YES,则用Javascript填写表单
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- 解析云代码错误:解析.错误{代码:141,消息:“未调用成功/错误”}
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- 在AngularJs中隐藏默认错误消息
- 使用JavaScript安全地发布消息
- PhoneGap聊天应用程序用户可以看到其他人的消息