Reduzindo a frequência de exibição do aviso "Draft is being edited in another window."

Olá.

Sou membro de um fórum Discourse (BlenderArtists.org) e tenho um monitor 4K, que me permite exibir duas páginas do fórum lado a lado.

Às vezes, quando planejo escrever um comentário longo e preparo minha resposta (com várias citações de um tópico extenso atual), abro o Editor de Mensagens na página da esquerda e navego pelo mesmo tópico na página da direita.

Mas, ao fazer isso, a seguinte mensagem aparece com muita frequência:

O rascunho está sendo editado em outra janela. Por favor, recarregue esta página.

Não me oponho a esse aviso (sei que é útil em algumas situações).

Mas seria possível adicionar uma opção nas preferências do usuário para desativá-lo? Ou definir a frequência de exibição (o temporizador)?

Essa mensagem de aviso impede que eu escreva a mensagem com tranquilidade.

Obrigado por considerar a adição dessa opção.

5 curtidas

Desculpe, recebemos muitas solicitações de suporte sobre isso, então o lembrete é intencional. É um fluxo de trabalho muito arriscado e você pode perder todo o seu post.

Um segundo, você está realmente editando em dois lugares? Qual é o passo a passo exato para reproduzir?

Apenas abrir e navegar não deve causar esse aviso; você precisa estar editando de duas janelas.

1 curtida

Nós tentamos automaticamente abrir o rascunho para edição quando você entra em um tópico. Mesmo que você minimize imediatamente o compositor, ele ainda estará ativo e em conflito.

4 curtidas

Sim, já tive esse problema. É definitivamente irritante quando acontece, mas concordo com o Jeff: precisamos ter cautela aqui devido aos problemas históricos.

Minha solução costuma ser abrir o tópico em duas abas e só começar a escrever depois que ambas forem carregadas.

1 curtida

Isso é certamente um bug; a proteção só deve entrar em ação quando você começar a digitar.

3 curtidas

Bom, se tivermos um caso reproduzível, podemos corrigi-lo.

Também já fui afetado pela abertura automática do rascunho, mas o problema vai além de apenas receber a mensagem de aviso. Voltei a digitar minha postagem e, mais tarde, recebi o pop-up tentando me redirecionar para outra aba que continha um rascunho mais antigo. Nesse ponto, se eu atualizar a página, recebo apenas a versão mais antiga do meu rascunho; portanto, nesse sentido, esse recurso não está realmente impedindo o que deveria.

Não tenho certeza se isso ocorre antes de você começar a digitar. Acabei de tentar reproduzir no meta, e só aconteceu quando comecei a digitar na segunda aba. Costumo ativar isso pouco depois de duplicar minha aba para consultar o que estou escrevendo. Perdoo de qual aba comecei, e quando começo a digitar na segunda aba por engano, o aviso aparece.

Seria possível ou razoável detectar se outra aba já tem o editor aberto para o tópico em questão e, se for o caso, não abrir o editor para a nova aba?

4 curtidas

Muito complicado, na verdade… talvez haja algo que possamos fazer com web workers, mas seria uma mudança enorme que eu não gostaria de fazer.

Preciso de uma reprodução exata, passo a passo. Nosso aviso é acionado muito cedo; na pior das hipóteses, você perderia algumas palavras. Imagino que, se você estiver offline, as coisas podem ficar estranhas, mas isso é um caso muito específico… a solução alternativa é copiar e colar.

Acabei de dar uma olhada na mensagem original (OP).

Não consegui reproduzir isso. Você pode fornecer os passos exatos que levam a essa mensagem incorreta? Se você não estiver editando, há apenas um caso específico em que essa mensagem aparece, e até isso é questionável. Mas é um caso muito trivial.

  1. Abra a aba 1… comece a redigir a resposta
  2. Abra a aba 2… navegue por aí
  3. Na aba 1… continue redigindo
  4. Na aba 2… minimize o editor (você recebe uma mensagem de aviso… mas apenas uma vez)

O que pode estar acontecendo e causando confusão:

  1. Abra a aba 1… comece a redigir a resposta
  2. Abra a aba 2… por engano, cite algo para a resposta
  3. Na aba 1… continue redigindo… o aviso permanece… persistentemente (porque estaríamos descartando a citação de (2))

Não tenho certeza do que corrigir aqui… preciso de reproduções.

1 curtida

Definitivamente já tive momentos em que perdi uma quantidade significativa de conteúdo. Por esse motivo, tenho cuidado para não acionar esse aviso, então não me lembro dos passos exatos que causaram a perda significativa neste momento.

Acho que o problema pode ser se isso salvar um rascunho, sobrescrevendo o que você fez na aba 1. Se isso acontecer, pode resultar em uma perda significativa de conteúdo. Isso é apenas especulação por enquanto, mas vou ver se consigo reproduzir o problema dessa forma e te aviso.

Não pode, por favor… Preciso de passos para reproduzir… Toda vez que um rascunho é salvo, um teste de alteração de conflito é realizado.

Preciso de um passo a passo para reproduzir qualquer perda significativa de conteúdo.

1 curtida

Entendo que você precisa de passos para reproduzir. Configurei um lembrete (:tada:) para olhar amanhã à noite. Seria útil saber (em alto nível) como o teste de conflito funciona. Há um identificador único gerado no carregamento da página ou algo assim?

Cada rascunho está fortemente associado ao editor por meio de um ID único. Isso apenas avança.

O que você quer dizer com isso?

Basicamente, quero dizer que, se houver uma corrida… e dois compositores estiverem respondendo ao mesmo tópico para o mesmo usuário… apenas um vence. Cada vez que salvamos, um proprietário é escolhido.

1 curtida

Certo, @sam, tenho os passos para reproduzir o problema. Não sei se isso está relacionado ao problema original do OP (já que essa conversa se desviou um pouco), mas, de qualquer forma, eis o que tenho. Basicamente, se você abrir a guia 2 mas continuar digitando na guia 1 antes que a guia 2 termine de carregar, a nova página entra em um estado inválido. Se você continuar digitando na guia 1 enquanto a guia 2 ainda estiver carregando, a guia 2 carregará o rascunho da guia 1 como ele estava no momento em que a página foi aberta, mas você ainda poderá editar na guia 2 mesmo após a guia 1 ter salvo alterações adicionais (sobrescrevendo, assim, essas alterações). Aqui estão os passos para reproduzir:

  1. Abra o tópico A e comece a redigir uma resposta.
  2. Pare de digitar para que o rascunho seja salvo.
  3. Abra o tópico A em uma nova guia (duplicar a guia ou clicar com o botão direito/meio no título do tópico é a maneira mais fácil de reproduzir, pois elas precisam carregar a página inteira e, portanto, são mais lentas).
  4. Imediatamente continue redigindo a resposta na guia 1, antes que a guia 2 termine de carregar.
  5. Pare de digitar para que o rascunho seja salvo novamente (isso terá sucesso, como esperado).
  6. Vá para a guia 2 e digite no editor.
  7. Pare de digitar. O rascunho será salvo, mesmo que o aviso devesse aparecer. Isso sobrescreverá todas as alterações adicionais que você fez na guia 1 a partir do passo #4. (Se você receber o aviso como esperado, provavelmente esperou muito tempo para começar a digitar no passo #4.) Note que, neste ponto, você também não poderá digitar novamente na guia 1 sem recarregar essa guia.

Observe que, no passo #4, você não precisa realmente parar de digitar e salvar um rascunho antes que a guia 2 termine de carregar. Apenas começar a digitar é o que coloca tudo em um estado inválido. Na verdade, não é incomum abrir uma guia duplicada em segundo plano para verificar coisas mais tarde e continuar digitando na guia 1 no meio tempo. Mas fazer isso muito rapidamente colocará as guias em um estado inválido e permitirá que você acidentalmente sobrescreva o que adicionou na guia 1. Claro, minimizar o editor também salva um rascunho; então, uma vez que você entre nesse estado inválido, basta minimizar o editor na guia 2 para tirá-lo do caminho, o que sobrescreverá seu último rascunho da guia 1.

Neste ponto, se você voltar para a guia 1, onde originalmente estava redigindo sua mensagem, não poderá mais digitar e receberá o aviso que deveria ter aparecido na guia 2. Se você perceber que seu rascunho foi perdido, pode, claro, copiar o conteúdo do editor da guia 1. Mas, se não percebeu e recarregou a página (seguindo as instruções do aviso), você perderá as alterações feitas e não terá como recuperá-las.

Me avise se ainda tiver dificuldade em reproduzir o problema com esses passos. Consigo reproduzir o problema com bastante consistência seguindo esses passos (alternando ocasionalmente para novos tópicos para obter rascunhos frescos), então espero que isso seja suficiente informação.

10 curtidas

OK, tenho uma correção aqui:

Muito obrigado pelo caso de reprodução. Foi espetacular e me ajudou a isolar o problema rapidamente.

Sinto que minha resposta anterior sobre como mantemos o controle das versões de rascunho foi um pouco vaga. Acredito que se resume a eu ter sido um pouco ingênuo e ambicioso no meu algoritmo. Essa é uma combinação perigosa. O novo algoritmo é muito mais fácil de explicar.

  • Sempre que o cliente salva um rascunho, ele informa ao servidor qual é o seu “número de sequência”.

  • Se o número de sequência corresponder, o servidor aumentará o número de sequência em 1 e o retornará ao cliente (nosso novo número de sequência).

  • Se o número de sequência não corresponder, o servidor informará ao cliente que há um conflito e não salvará o rascunho.

  • Ao recarregar/carregar a página, o servidor informa ao cliente qual é o número de sequência atual.

Minha implementação anterior era muito complexa; tentava evitar o aumento do número de sequência sob várias condições, rastreando o proprietário de uma sequência. Seu caso de teste mostrou o quão ruim isso é e como pode causar perda de conteúdo.

Isso já deve estar ativo no meta. Me avise se conseguir encontrar mais casos extremos nesse sistema.

10 curtidas

Isso é um grande elogio, @seanblue. Você deveria estar orgulhoso deste aqui :tada:

4 curtidas

Estou enfrentando o mesmo problema aqui no meta:

  • Abri um editor e escrevi o título.
  • Para tirar uma captura de tela sobre esse bug, mudei de “novo tópico” para “nova mensagem”.
  • Canceli o tópico (ou seja, a mensagem), pois não consegui reverter para um tópico.
  • Iniciei um novo tópico.

Um aviso foi exibido incorretamente (já que eu já havia cancelado a mensagem):

Agora, mesmo quando escolho “abandonar”, a cada 10-20 segundos recebo esta mensagem:

embora não haja nenhuma outra aba.

Isso só acontece quando mudo de um tópico para uma mensagem. Parece que o cancelamento de uma mensagem não a cancela de verdade.

2 curtidas

Isso exige bastante trabalho, alternando entre abas no navegador, mas sim… o abandono certamente está falhando em abandonar neste caso, devemos corrigir isso.

5 curtidas