【发布时间】:2014-02-25 21:07:31
【问题描述】:
我已经为我的朋友(以及程序员)制作了一个聊天应用程序,以便在我们之间传递代码和链接,但是在发送了一些消息之后,聊天似乎需要很长时间才能发送消息并加载日志当用户在创建新会话时进入聊天时,我使用 wamp 托管,yii 用于 php 框架和 jquery 用于 javascript 框架,我还使用 mysql 来存储用户和聊天,我不知道为什么有时甚至需要很长时间才能加载对于同一台服务器,可能是因为我从 php 以数组形式发送聊天日志,这是我收到它的方式:
<?php foreach ($chat as $data): ?>
<?php if($data->Text == 'disconnected'): ?>
<i><strong><?php echo $data->users->username; ?></strong> <?php echo $data->Text; ?></i>
<br/>
<?php endif; ?>
<?php if($data->Text != 'disconnected'): ?>
<strong>(<?php echo $data->time; ?>) <?php echo $data->users->username; ?>:</strong> <?php CheckLink($data->Text); ?>
<br/>
<?php endif; ?>
<?php endforeach; ?>
这是 yii 控制器的渲染方式:
public function actionAjaxscript()
{
$chat = Chat::model()->findAll();
if(isset($_POST["usermsg"])){
echo "hello";
}
$this->renderPartial('_ajax', array('chat'=>$chat));
}
我发送这个是因为我认为问题来自这里,有谁知道如何解决这个问题?如果您需要查看其他代码,请告诉我并展示它们。
【问题讨论】:
-
每次点击按钮时,您都会获取所有对话,而不仅仅是新消息......可以修复
-
好的,我尝试更改代码以仅获取新消息而不是所有消息,谢谢
-
现在真的不应该将 MySql 用于聊天系统!应该使用 Node.js 和 Socket.io
-
@mario - true,因为 node.js 和 socket.io 是持久存储。哦,等等..
-
@N.B.这不是进行这种对话的地方,他想要一个更快的系统,我在评论部分提出了不同的解决方案。我不会阻止任何人在 php+mysql 中发布一个好的答案。
标签: javascript php mysql yii