From c67e7035aaae7d13c902b75fdd95efb33155d072 Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Fri, 19 Oct 2012 15:42:40 -0400 Subject: [PATCH] Limit the number of old messages the client requests (imported from commit 6bff6aa0b48d46b98aa68c6e29eb569cf41f4989) --- zephyr/static/js/zephyr.js | 8 +++++++- zephyr/views.py | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/zephyr/static/js/zephyr.js b/zephyr/static/js/zephyr.js index 13ff1ae833..7e0f7ffbcf 100644 --- a/zephyr/static/js/zephyr.js +++ b/zephyr/static/js/zephyr.js @@ -3,6 +3,10 @@ var message_dict = {}; var subject_dict = {}; var people_hash = {}; +// We only tell the server to backfill old messages +// if we have fewer than this many messages total. +var max_messages_for_backfill = 1000; + var selected_message_class = 'selected_message'; var viewport = $(window); var reloading_app = false; @@ -14,7 +18,8 @@ var get_updates_params = { last: -1, failures: 0, server_generation: -1, /* to be filled in on document.ready */ - reload_pending: 0 + reload_pending: 0, + want_old_messages: true }; $(function () { @@ -615,6 +620,7 @@ $(function () { var get_updates_xhr; var get_updates_timeout; function get_updates() { + get_updates_params.want_old_messages = (message_array.length < max_messages_for_backfill); get_updates_xhr = $.ajax({ type: 'POST', url: '/json/get_updates', diff --git a/zephyr/views.py b/zephyr/views.py index fb3da7ac5a..428f725c61 100644 --- a/zephyr/views.py +++ b/zephyr/views.py @@ -239,6 +239,7 @@ def return_messages_immediately(request, handler, user_profile, **kwargs): first = request.POST.get("first") last = request.POST.get("last") failures = request.POST.get("failures") + want_old_messages = (request.POST.get("want_old_messages") == "true") client_server_generation = request.POST.get("server_generation") client_reload_pending = request.POST.get("reload_pending") if first is None or last is None: @@ -264,7 +265,7 @@ def return_messages_immediately(request, handler, user_profile, **kwargs): + list(query.filter(id__gte=ptr)[:200])) else: messages = query.filter(id__gt=last)[:400] - if not messages: + if want_old_messages and not messages: # No more messages in the future; try filling in from the past. messages = last_n(400, query.filter(id__lt=first)) where = 'top'