【发布时间】:2017-10-26 07:07:02
【问题描述】:
假设 PHPFile.php 每 2 秒返回一次随机整数 (X)。
现在如果 X == 5 我想显示一个警报(客户端)。
以下代码将完成这项工作:
$(function worker(){
$.ajaxSetup ({
cache: false,
complete: function() {
// Schedule the next request when the current one's complete
setTimeout(worker, 2000);
}
});
$.ajax({
type: "GET",
url: "PHPFile.php",
success:function(result){
if (result == 5){
alert('test');
}
};
});
现在的问题是,当我们每 2 秒调用一次时,它就像在破坏内存,特别是如果 PHPFile.php(在示例中)有大数据。
每分钟 30 个请求及其计数。
所以我想知道如果发生更改而不刷新浏览器,更新客户端浏览器的最佳方法是什么。
也许它就像 facebook 通知系统。
【问题讨论】:
-
你应该看看 WebSocket like socketio with nodejs。客户端连接到服务器,因此他们只能在需要时与事件通信:) 示例:服务器更新一些数据,所以他发出一个事件,相关的客户端会收到通知,因此您可以在客户端执行一些操作
-
webSocket 在我的情况下并不是最好的,因为我们正在处理属于特定用户的数据。 webSocket 不处理与用户具有相同会话的 PHP 文件
-
您可以按用户建立一个房间的系统,以便通知特定用户。您可以通过调用您的 php 在套接字连接处检查客户端提供的 cookie 并检查会话是否有效。我认为使用套接字对您的情况没有限制,这只是一点工作,但它完全适合您的需求