Obrigado @merefield, foi exatamente o que tentamos ![]()
Infelizmente, ele ainda pausa para carregar a página da Lista de Usuários primeiro, depois redireciona para o mapa.
Eu esperava que apenas o mapa estivesse disponível em /map ou algo assim ![]()
Obrigado @merefield, foi exatamente o que tentamos ![]()
Infelizmente, ele ainda pausa para carregar a página da Lista de Usuários primeiro, depois redireciona para o mapa.
Eu esperava que apenas o mapa estivesse disponível em /map ou algo assim ![]()
Entendido.
Mas isso é uma distração.
A Lista de Usuários padrão é armazenada em cache, então carrega em uma fração de segundo. O problema é o tempo que leva para carregar o modelo do mapa, que, no seu caso, são cerca de 400 usuários de uma só vez… então, sim, a renderização da Lista de Usuários consome apenas 0,1% do tempo de processamento, mas o verdadeiro problema está na parte posterior. Pode não haver uma solução rápida para isso.
Eu sei disso em parte porque acabei de implantar em um site que não utilizava esse recurso anteriormente. Os dados do mapa carregam tão rapidamente que a Lista de Usuários nunca fica visível (apesar de carregar primeiro). O problema? Apenas 2 usuários marcaram sua localização até agora… o Mapa de Usuários não escala bem com sua arquitetura atual.
Interessante insight, obrigado.
No momento, temos apenas cerca de 12% dos membros da nossa comunidade no mapa e, recentemente, discutimos uma iniciativa para trazer mais membros para lá.
Estaria certo em pensar que, à medida que nossa comunidade continua a crescer, podemos esperar que o carregamento do mapa fique cada vez mais lento?
Estou achando também que ele precisa carregar a lista de usuários primeiro?
Sem saber nada sobre o código, é possível ter o mapa sozinho em algum lugar?
![]()
Como eu disse, isso é irrelevante. A lista de usuários está em cache e é muito curta.
O plugin Locations usa seu próprio modelo para isso ou um modelo principal existente? Estou me perguntando onde está o gargalo ao selecionar apenas 400 linhas de informações do usuário do banco de dados.
Desculpe por todas as perguntas, @merefield, apenas tentando entender melhor como funciona por baixo dos panos ![]()
Sem problema, Richie. Sobrescrevemos o DirectoryItemsController para buscar mais pessoas de uma só vez do que o normal quando os dados são paginados para a tabela padrão. O modelo não é diferente.
Isso realmente precisa de uma substituição completa por um sistema de streaming de dados muito mais complexo, que seja consciente do tamanho e da localização da viewport. Suspeito que seja um trabalho considerável. Não apenas porque isso não poderá mais aproveitar tanto do código que vem com o Discourse; é um caso de uso completamente diferente. No entanto, é um trabalho bastante interessante!
O fato de você estar vendo esse atraso a cada única vez sugere que não se trata de cache, e isso poderia ser algo que poderíamos corrigir sem mudanças massivas.
Eu não perdi ou alterei alguma configuração simples do Discourse, certo? ![]()
Não, não é um problema seu, exceto que você pode ter superado as capacidades atuais do plugin ![]()
Quando tiver um tempo, vou investigar o que seria necessário para armazenar os resultados em cache, para que você só enfrente esse problema uma vez por sessão. Essa é a solução mais simples.
A cirurgia mais complexa, no entanto…
![]()
Obrigado, @merefield, mas vamos esperar um pouco com isso. Não tenho evidências de nenhum lado, mas minha suspeita é forte de que as pessoas, de qualquer forma, só olham o mapa uma vez por sessão ![]()
Um relatório de bug.
Esse bug existe há algum tempo, mas finalmente descobri que o plugin de localizações é o culpado. Quando tenho o plugin desativado, meu site aparece corretamente no cartão do usuário, mas quando o ativo, ele aparece duas vezes! Aqui está uma captura de tela do cartão do usuário que aparece ao passar o mouse:
e outra da página de perfil totalmente expandida:

Testei isso várias vezes alterando combinações de valores no perfil. A única vez que vejo aparecer corretamente, ou seja, o site aparece apenas uma vez, é se desativo o plugin de Localizações.
Obrigado, Kartik. Você está em uma atualização recente?
Sim, eu deveria ter mencionado isso.
EDIT: O HTML gerado para o elemento duplicado:
<span id="ember858" class="ember-view"> <div id="ember860" class="user-location-and-website-outlet replace-location ember-view"><!----><div class="user-profile-website">
<svg class="fa d-icon d-icon-globe svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#globe"></use></svg>
<span title="http://ks.cs.uchicago.edu">ks.cs.uchicago.edu</span>
</div>
</div>
</span>
Estou ocupado com trabalho de cliente no momento, mas vou manter isso em mente na preparação para o próximo período de atualização suportado (1 a 5 do próximo mês).
Interessante que um está estilizado como um link clicável e o outro não ![]()
Também é interessante que não estamos vendo esse problema no nosso fórum.
Parece que temos outro problema, @merefield
Nosso mapa de usuários está atualmente mostrando 472 usuários, mas alguns relataram que o pino deles não está aparecendo no mapa. No entanto, ao visualizar o cartão do usuário, eles aparecem no próprio mapa deles.
Quando executamos uma consulta no banco de dados para usuários com localização adicionada, obtemos 492 resultados, então parece que cerca de 20 não estão visíveis no mapa.
Podemos fazer algo para ajudar a depurar isso?
Ao visualizar o cartão do usuário do Chris, ele aparece corretamente no perfil do mapa dele:
Mapa completo/principal, o Chris está faltando ![]()
Qual é o valor dessa configuração, Richie?

para o exemplo de usuário ausente, você pode me enviar por mensagem privada o resultado disso no console do Rails:
myuser = User.find_by(username: "===USERNAME===")
myuser.custom_fields["geo_location"]
A trama se complica ![]()
Estava definido como 500.
Mudei para 1000 e nossas pessoas desaparecidas apareceram instantaneamente ![]()
Vou te enviar por mensagem privada os resultados, conforme solicitado ![]()
Ah, nesse caso, não há necessidade de enviar essa informação por mensagem privada. Suspeito que a lista de pessoas com geo_locations possa ter incluído entradas com campos vazios (por exemplo, o campo personalizado existe, mas o objeto está vazio), e, como resultado, você pode estar atingindo o limite máximo. Aumente o número máximo e, mesmo que haja campos vazios, eles não vão deslocar os usuários válidos. Com certeza seria possível melhorar o código ali, mas não é crítico.
Obrigado @merefield. Vimos alguns usuários com valores como '{}', então estou supondo que eles talvez tenham tido uma localização antes, que foi removida desde então.
Também não me lembro se esses valores são excluídos quando um usuário é anonimizado — novamente, isso poderia nos fazer ultrapassar o limite mágico de 500 que tínhamos definido.
Valeu ![]()