From a44c3ff247747f48edd673df1cfdfd9beb192e31 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Tue, 27 Nov 2012 15:26:48 -0500 Subject: [PATCH] get_updates: Eliminate the reload_pending parameter. (imported from commit c7b57c4ef7fc4d6f0028f174f33ff7ff063d4b9d) --- zephyr/static/js/zephyr.js | 12 +++++++++--- zephyr/views.py | 8 ++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/zephyr/static/js/zephyr.js b/zephyr/static/js/zephyr.js index 9fc37db430..9b0f4e3035 100644 --- a/zephyr/static/js/zephyr.js +++ b/zephyr/static/js/zephyr.js @@ -10,8 +10,7 @@ var selected_message = $(); /* = rows.get(selected_message_id) */ var get_updates_params = { last: -1, pointer: -1, - server_generation: -1, /* to be filled in on document.ready */ - reload_pending: 0 + server_generation: -1 /* to be filled in on document.ready */ }; var get_updates_failures = 0; @@ -558,8 +557,15 @@ function get_updates(options) { options = $.extend({}, defaults, options); get_updates_params.pointer = furthest_read; - get_updates_params.reload_pending = Number(reload.is_pending()); get_updates_params.dont_block = options.dont_block || get_updates_failures > 0; + if (reload.is_pending()) { + // We only send a server_generation to the server if we're + // interested in an immediate reply to tell us if we need to + // reload. Once we're already reloading, we need to not + // submit the parameter, so that the server will process our + // future requests in longpolling mode. + delete get_updates_params.server_generation; + } get_updates_xhr = $.ajax({ type: 'POST', diff --git a/zephyr/views.py b/zephyr/views.py index ad8fe761ac..3c728c4812 100644 --- a/zephyr/views.py +++ b/zephyr/views.py @@ -332,8 +332,7 @@ def format_updates_response(messages=[], apply_markdown=True, def return_messages_immediately(user_profile, client_id, last, client_server_generation, - client_reload_pending, client_pointer, - dont_block, **kwargs): + client_pointer, dont_block, **kwargs): if last is None: # When an API user is first querying the server to subscribe, # there's no reason to reply immediately. @@ -369,8 +368,7 @@ def return_messages_immediately(user_profile, client_id, last, update_types.append("nonblocking_request") if (client_server_generation is not None - and int(client_server_generation) != SERVER_GENERATION - and not client_reload_pending): + and int(client_server_generation) != SERVER_GENERATION): update_types.append("client_reload") ptr = user_profile.pointer @@ -407,13 +405,11 @@ def send_with_safety_check(response, handler, apply_markdown=True, **kwargs): def get_updates_backend(request, user_profile, handler, client_id, last = POST(converter=int, default=None), client_server_generation = POST(whence='server_generation', default=None), - client_reload_pending = POST(whence='reload_pending', default=None), client_pointer = POST(whence='pointer', converter=int, default=None), dont_block = POST(converter=simplejson.loads, default=False), **kwargs): resp = return_messages_immediately(user_profile, client_id, last, client_server_generation, - client_reload_pending, client_pointer, dont_block, **kwargs) if resp is not None: