gpt4 book ai didi

javascript - 提高聊天应用程序的性能

转载 作者:行者123 更新时间:2023-11-30 00:37:38 24 4
gpt4 key购买 nike

我为我的 friend (还有程序员)制作了一个聊天应用程序,以便在我们之间传递代码和链接,但是在发送一些消息后,聊天似乎需要很长时间才能发送消息并加载日志当用户在创建新 session 时进入聊天时,我使用 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 Controller 渲染它的方式:

public function actionAjaxscript()
{
$chat = Chat::model()->findAll();
if(isset($_POST["usermsg"])){
echo "hello";
}

$this->renderPartial('_ajax', array('chat'=>$chat));
}

我发送此消息是因为我认为问题来自于此,有谁知道如何解决此问题?如果您需要查看其他代码,请告诉我,我会向您展示。

最佳答案

我不确定你的方法是最好的。

您每次都会加载整个聊天历史记录,您应该只加载新行,而不是每次都加载所有内容。每次打开页面时都会创建一个哈希值。该页面应该始终要求使用该特定哈希值的新行。服务器知道他最后发送到该哈希的内容,并且只能发送新消息(而不是再次发送所有消息)。尝试使用 json 来发送回聊天消息,而不是整个 html 结构,这也会加快速度。

如果您有很多用户,MySQL 很快就会被聊天请求淹没,请尝试使用 memcache 或 APC 缓存聊天行以加快访问速度来改进它。

如果您在显示聊天行后执行某种 jquery,则浏览器本身可能会变慢。上下滚动查看速度是否变慢。我在将 50 个产品添加到购物车后就发生了这种情况。

View 中还有 2 个 IF 命令,为什么没有一个 else 呢?它的工作原理完全相同,并且会给服务器带来更少的压力。

此外,在您的示例中,您没有将数据作为数组发送,而是以 html 形式发送。

关于javascript - 提高聊天应用程序的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22026194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com