var updateMessages = function () {
if (app.requestXHR) {
app.requestXHR.abort();
}
app.requestXHR = $.ajax({
url: ('/some/url'),
type: 'GET',
data: data,
success: function (messages) {
$.app.Orders.requestXHR = false;
// some process
}
});
}
window.setInterval(updateMessages, 3000);
Проблема в том, что растёт занимаемая память сервером. Запрос обрабатывается менее 3 секунд, по идее app.requestXHR.abort() не будет вызываться вовсе.
Однако память усточиво растёт. Включил таймер, за час набежал один гигабайт.
На серверной стороне нет ничего особенного, обыкновенный поиск и фильтрация записей.
def fresh
@order = Order.find(params[:id])
if params[:last_message_id]
last_message = @order.messages.find(params[:last_message_id])
@messages = @order.messages
.where('created_at >= :date', :date => last_message.created_at)
.where('NOT id = :id', :id => last_message.id)
else
@messages = @order.messages
end
respond_to do |format|
format.json { render :json => @messages }
end
end