Jea*_*ert 7 php ajax hosting shared-hosting
如果有来自4个不同浏览器的相同查询同时每3或10秒有新的notif,我会调用AJAX检查数据库.但是在循环100+之后的某个时刻,服务器返回错误508(检测到循环).这只是一个简单的网站,所以我认为我不需要VPS服务器.
我在SELECT中添加了时间戳作为查询区分,put unset,flush,mysqli_free_result,pause,mysqli_kill,mysqli_close,但仍然出现错误.进入流程达到20/20.
脚本
var counter = 1;
var notiftimer;
$(document).ready(function() {
ajax_loadnotifs();
});
function ajax_loadnotifs() {
$.ajax({
type: "post",
url: "service.php",
dataType: "json",
data: { action:'loadnotifs' },
success: function(data, textStatus, jqXHR){
$("div").append($("<p>").text(counter++ + ": succeeded"));
notiftimer = setTimeout(function() {
ajax_loadnotifs();
}, 3000);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
}
});
}
Run Code Online (Sandbox Code Playgroud)
service.php
$link = mysqli_connect('localhost', 'root', 'root', 'testdb');
$notifs = array();
$query = "SELECT id, message FROM notifs LIMIT 20";
if (!$temp_notifs = mysqli_query($link, $query)) {
die(json_encode(array("errmsg" => "Selecting notifs.")));
}
while($notif = mysqli_fetch_assoc($temp_notifs)) {
$notifs[] = $notif;
}
mysqli_close($link);
echo json_encode($notifs);
Run Code Online (Sandbox Code Playgroud)
cPanel - 资源使用概述
当进程进程达到20/20时,我得到错误508.如何维护低服务器进入进程?(使用4种不同的浏览器进行测试,在共享主机上运行它们直到循环100+.在本地计算机上没有问题)
小智 5
什么是入门流程?
"Entry Process"是您一次运行的PHP脚本数量.
资料来源:https://billing.stablehost.com/knowledgebase/186/What-is-considered-an-Entry-Processes.html
因此,您发现的潜在问题最终是您同时运行了太多进程.您可以采取一些措施来解决问题.
选项1
找一个新的网络主机.这可能是最简单但也是最昂贵的,这取决于您对当前主机的财务安排.找一个没有这个限制的人.
选项2
增加ajax请求之间的时间.为什么每3秒钟需要一次?这是非常非常短的时间.15秒呢?还是30秒?或者,甚至1分钟?您的用户可能不需要像您想象的那样经常刷新他们的数据.
选项3
仅在当前选项卡/窗口处于焦点时执行ajax调用.如果用户甚至没有查看您的页面,则没有理由继续轮询通知.
查看Document.hasFocus():https:
//developer.mozilla.org/en-US/docs/Web/API/Document/hasFocus
选项4
实现缓存层.如果您仍然需要非常频繁地请求数据,那么可以提高检索此数据的速度.如何实现缓存取决于您,但在某些情况下,即使使用文件写入/读取也可以减少完成请求所需的时间和资源.
从数据库收到通知后,只需将JSON保存到文本文件中,然后从那里发送后续请求,直到数据库数据发生更改.看看这是否会提高性能.
如果您想更加专注于缓存,可以查看Memcached(https://en.wikipedia.org/wiki/Memcached)或Redis(https://en.wikipedia.org/wiki/Redis)等选项.
尝试结合多个选项以获得更好的性能!
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |