Fix client continuously calling get_updates when a reload is pending.

(imported from commit 2c29c8b892e7843f4d75178cc683bf48f7a5cdf5)
This commit is contained in:
Tim Abbott
2012-10-17 17:45:03 -04:00
parent 49a8677517
commit bff0046c51
2 changed files with 18 additions and 18 deletions

View File

@@ -5,9 +5,18 @@ var people_hash = {};
var selected_message_class = 'selected_message';
var viewport = $(window);
var app_needs_reload = false;
var reloading_app = false;
var selected_message_id = -1; /* to be filled in on document.ready */
var selected_message; // = get_message_row(selected_message_id)
var received = {
first: -1,
last: -1,
failures: 0,
server_generation: -1, /* to be filled in on document.ready */
reload_pending: false
};
$(function () {
var i;
var send_status = $('#send-status');
@@ -21,13 +30,13 @@ $(function () {
send_status.hide();
hide_compose();
buttons.removeAttr('disabled');
if (app_needs_reload) {
if (received.reload_pending) {
reload_app();
return;
}
},
error: function (xhr, error_type) {
if (error_type !== 'timeout' && app_needs_reload) {
if (error_type !== 'timeout' && received.reload_pending) {
// The error might be due to the server changing
reload_app_preserving_compose(true);
return;
@@ -63,15 +72,6 @@ $(function () {
});
});
var selected_message_id = -1; /* to be filled in on document.ready */
var selected_message; // = get_message_row(selected_message_id)
var received = {
first: -1,
last: -1,
failures: 0,
server_generation: -1 /* to be filled in on document.ready */
};
$(function () { received.server_generation = server_generation; });
// The "message groups", i.e. blocks of messages collapsed by recipient.
@@ -600,11 +600,8 @@ function get_updates() {
received.failures = 0;
$('#connection-error').hide();
if (data.server_generation > server_generation && !app_needs_reload) {
// We need to set server_generation here to avoid
// pounding the server with get_updates requests.
server_generation = data.server_generation;
app_needs_reload = true;
if (data.server_generation !== received.server_generation) {
received.reload_pending = true;
reload_app();
}