我有一种方法来检查通知并执行js.erb作为回报。
触发此方法的JS如下所示:

setInterval(function () {
  $.ajax({
    url: "http://localhost:3000/checkNotification",
    type: "GET"
  });
}, 15000);


效果很好,但我担心该网站投入生产后的性能。
这会导致性能问题吗?
如果是,还有其他解决方法吗?

最佳答案

我的一个建议是利用ajax的回调函数,这样,如果请求花费的时间比预期的长,它将不会再次触发,直到最后一个请求完成

function checkNotifications(){
    $.ajax({
        url: "http://localhost:3000/checkNotification",
        type: "GET",
        success: function(){
            setTimout(checkNotification, 15000);
        }
    });
};


如果由于某种原因服务器响应500错误,也会阻止该功能继续

08-24 14:40