mirror of
https://github.com/zulip/zulip.git
synced 2025-11-07 15:33:30 +00:00
Fix client continuously calling get_updates when a reload is pending.
(imported from commit 2c29c8b892e7843f4d75178cc683bf48f7a5cdf5)
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user