Locations Plugin 🌍

Danke @merefield, genau das haben wir versucht :slight_smile:

Leider lÀdt es trotzdem zuerst die Benutzerliste-Seite, dann wird es zur Karte weitergeleitet.

Ich hatte gehofft, dass die Karte allein auf /map oder Ă€hnlich verfĂŒgbar sein könnte :slight_smile:

2 „GefĂ€llt mir“

Verstanden.

Aber das ist ein Ablenkmanöver.

Die Standard-User-Liste wird zwischengespeichert, sodass sie in einem Bruchteil einer Sekunde geladen wird. Das Problem ist die Zeit, die das Laden des Modells fĂŒr die Karte dauert – in deinem Fall werden etwa 400 Benutzer auf einmal geladen. Die Darstellung der User-Liste verschwendet also zwar nur 0,1 % der Verarbeitungszeit, aber das eigentliche Problem liegt im zweiten Teil. Es gibt dafĂŒr möglicherweise keine schnelle Lösung.

Ich weiß das teilweise, weil ich gerade auf einer Website deployed habe, die diese Funktion bisher nicht genutzt hat. Die Kartendaten werden so schnell geladen, dass die User-Liste nie sichtbar ist (obwohl sie zuerst lĂ€dt). Der Haken? Bisher haben nur 2 Benutzer ihren Standort markiert 
 die User-Karte skaliert mit ihrer aktuellen Architektur nicht gut.

3 „GefĂ€llt mir“

Interessante Einsicht, danke.

Momentan sind nur etwa 12 % unserer Community-Mitglieder auf der Karte verzeichnet, und wir haben kĂŒrzlich ĂŒber eine Initiative gesprochen, um mehr Mitglieder dort zu erfassen.

Liege ich richtig, wenn ich annehme, dass die Ladezeit der Karte mit weiterem Wachstum unserer Community immer lÀnger wird?

2 „GefĂ€llt mir“

Ich vermute auch, dass zuerst die Benutzerliste geladen werden muss?

Da ich nichts ĂŒber den Code weiß, ist es möglich, die Karte irgendwo separat zu haben? :thinking: :man_shrugging:

2 „GefĂ€llt mir“

Wie gesagt, ist das irrelevant. Die Benutzerliste wird zwischengespeichert und ist sehr kurz.

2 „GefĂ€llt mir“

Verwendet das Locations-Plugin dafĂŒr ein eigenes Modell oder ein bestehendes Kernmodell? Ich frage mich, wo der Flaschenhals liegt, wenn nur 400 Zeilen mit Benutzerinformationen aus der Datenbank ausgewĂ€hlt werden?

Entschuldige die vielen Fragen, @merefield – ich versuche nur, besser zu verstehen, wie das Ganze im Inneren funktioniert. :slight_smile:

2 „GefĂ€llt mir“

Kein Problem, Richie. Wir ĂŒberschreiben den DirectoryItemsController, um auf einmal mehr Personen abzurufen, als es normalerweise bei der Paginierung der Daten fĂŒr die normale Tabelle der Fall wĂ€re. Das Modell ist davon unberĂŒhrt.

Das mĂŒsste wirklich grundlegend durch ein deutlich komplexeres Daten-Streaming-System ersetzt werden, das die GrĂ¶ĂŸe und Position des Viewports berĂŒcksichtigt. Das ist, wie ich vermute, ziemlich viel Arbeit. Nicht zuletzt, weil dann nicht mehr so viel Code aus Discourse wiederverwendet werden kann – es ist ein völlig anderer Anwendungsfall. Allerdings eine sehr interessante Aufgabe!

Dass diese Verzögerung jedes einzelne Mal auftritt, deutet darauf hin, dass es sich nicht um ein Caching-Problem handelt. Das könnten wir eventuell beheben, ohne massive Änderungen vornehmen zu mĂŒssen.

4 „GefĂ€llt mir“

Ich habe doch bestimmt keine einfache Discourse-Einstellung ĂŒbersehen oder geĂ€ndert, oder? :man_facepalming:

2 „GefĂ€llt mir“

Nein, es liegt nicht an dir, außer dass du möglicherweise die aktuellen Möglichkeiten des Plugins bereits ĂŒberschritten hast :slight_smile:

Wenn ich Zeit habe, werde ich prĂŒfen, was nötig wĂ€re, um die Ergebnisse zu cachen, sodass du dieses Problem nur noch einmal pro Sitzung erlebst. Das ist der leichteste Schritt.

Die grĂ¶ĂŸere Baumarbeit jedoch 


2 „GefĂ€llt mir“

:cry:

Danke @merefield, aber lass uns das noch einmal zurĂŒckstellen. Ich habe zwar keine Beweise in die eine oder andere Richtung, aber ich vermute stark, dass die Leute die Karte ohnehin nur einmal pro Sitzung ansehen :thinking:

2 „GefĂ€llt mir“

Ein Fehlerbericht.

Dieser Fehler besteht schon eine Weile, aber ich habe schließlich herausgefunden, dass das Locations-Plugin dafĂŒr verantwortlich ist. Wenn das Plugin deaktiviert ist, wird meine Website korrekt auf der Benutzerkarte angezeigt. Sobald ich es jedoch aktiviere, erscheint sie doppelt! Hier ist ein Screenshot der Benutzerkarte, die beim Hover erscheint:

und ein weiterer von der vollstÀndig erweiterten Profilseite:

Screen Shot 2020-06-11 at 11.15.36 AM

Ich habe dies mehrfach getestet, indem ich verschiedene Kombinationen von Änderungen an den Werten im Profil vorgenommen habe. Die Website wird nur dann korrekt, also nur einmal angezeigt, wenn ich das Locations-Plugin deaktiviere.

2 „GefĂ€llt mir“

Danke, Kartik, bist du auf einem aktuellen Update?

2 „GefĂ€llt mir“

Ja, ich hÀtte das erwÀhnen sollen.


EDIT: Das fĂŒr das doppelte Element generierte HTML:

<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>
3 „GefĂ€llt mir“

Ich bin derzeit mit Kundenprojekten ausgelastet, werde das aber im Vorfeld des nĂ€chsten unterstĂŒtzten Upgrade-Zeitraums (1. bis 5. des nĂ€chsten Monats) im Hinterkopf behalten.

2 „GefĂ€llt mir“

Interessant, dass einer als anklickbarer Link gestaltet ist und der andere nicht :thinking:

Auch interessant, dass wir dieses Problem in unserem Forum nicht sehen.

2 „GefĂ€llt mir“

Es scheint, als hÀtten wir ein weiteres Problem, @merefield.

Unsere Benutzerkarte zeigt derzeit 472 Benutzer an, aber einige Benutzer haben gemeldet, dass ihr Pin nicht auf der Karte erscheint. Wenn man jedoch ihre Benutzerkarte ansieht, sind sie auf ihrer eigenen kleinen Karte sichtbar.

Wenn wir eine Abfrage in der Datenbank fĂŒr Benutzer mit einem hinzugefĂŒgten Standort ausfĂŒhren, erhalten wir 492 Ergebnisse. Es sieht also so aus, als wĂ€ren etwa 20 auf der Karte nicht sichtbar.

Können wir etwas tun, um bei der Fehlersuche zu helfen?

Wenn man Chris’ Benutzerkarte ansieht, wird er auf seinem eigenen Kartenprofil korrekt angezeigt:

Auf der vollstÀndigen/hauptkarte fehlt Chris :thinking:

1 „GefĂ€llt mir“

Was ist der Wert dieser Einstellung, Richie?

image

FĂŒr den fehlenden Beispielbenutzer könntest du mir bitte das Ergebnis davon aus der Rails-Konsole per PN senden:

myuser = User.find_by(username: "===USERNAME===")
myuser.custom_fields["geo_location"]
2 „GefĂ€llt mir“

Die Geschichte wird immer spannender :smiley:

Er war auf 500 gesetzt.

Ich habe ihn auf 1000 geÀndert, und unsere vermissten Personen tauchten sofort auf :thinking:

Ich werde dir die Ergebnisse wie gewĂŒnscht per PN schicken :+1:t2:

2 „GefĂ€llt mir“

Ah, in diesem Fall mĂŒssen Sie diese Informationen nicht per PN senden. Ich vermute, dass die Liste der Personen mit geo_locations auch EintrĂ€ge mit leeren Werten enthielt (z. B. ein benutzerdefiniertes Feld existiert, aber das Objekt ist leer), und dadurch haben Sie möglicherweise die maximale Anzahl ĂŒberschritten. Erhöhen Sie die maximale Anzahl, und selbst wenn es leere EintrĂ€ge gibt, werden die gĂŒltigen Benutzer nicht verdrĂ€ngt. Der Code könnte dort definitiv verbessert werden, ist aber nicht kritisch.

2 „GefĂ€llt mir“

Danke @merefield. Wir haben bei einigen Benutzern Werte wie '{}' gesehen, daher vermute ich, dass sie vielleicht einmal einen Standort hatten, der inzwischen entfernt wurde.

Ich kann mich auch nicht mehr erinnern, ob diese Werte gelöscht werden, wenn ein Benutzer anonymisiert wird – das wĂŒrde uns erneut ĂŒber den magischen Schwellenwert von 500 hinausbringen, den wir festgelegt haben.

Viele GrĂŒĂŸe :slight_smile:

2 „GefĂ€llt mir“