UI wird nach mehreren Bearbeitungen nicht aktualisiert

Mir ist das schon oft aufgefallen, aber es ist inkonsistent.

Wenn ich einen Antwortbeitrag erstelle, veröffentliche. Dann gehe ich sofort zurück, bearbeite ihn und klicke auf Speichern. Dann mache ich das Gleiche noch einmal, manchmal zeigt die Benutzeroberfläche die neuesten Bearbeitungen nicht an. Die Bearbeitungen werden auf dem Server gespeichert, denn wenn ich die Seite aktualisiere, werden sie angezeigt, aber das Problem ist, dass sie nicht immer angezeigt werden, bis die Seite aktualisiert wird. Dies geschieht bei einem neuen Antwortbeitrag und wenn er mehrmals innerhalb von 2-3 Minuten bearbeitet wird, bevor der Beitrag das Bearbeitungsrevisions-Tag registriert.

Ich stelle dies nach dem Upgrade auf Version 3.1.0 fest (derzeit läuft 3.1.2, 1 GB RAM und 1 Unicorn) bei Verwendung des Chrome-Browsers (Win 10) und des iPhone Safari (iOS 17.0.3). Es passiert ziemlich oft, deshalb melde ich es.

Das ist früher nicht passiert. Nur 2 Änderungen, seit es angefangen hat zu passieren:

  1. Aktualisierung von Discourse auf 3.x
  2. Reduzierung der Anzahl der Unicorns von 2 auf 1
2 „Gefällt mir“

Eine einfache Reproduktion hierfür ist, wenn ein Mitarbeiter/TL4 sowohl den Titel als auch den Inhalt eines Themas bearbeitet. Nur eine der beiden Bearbeitungen wird angezeigt (typischerweise die Beitragsbearbeitung), und die andere wird angezeigt, kann aber nicht gesehen werden.

2 „Gefällt mir“

Danke für den Bericht… :slight_smile: Können Sie zufällig ein kurzes Video aufnehmen, das dieses Verhalten zeigt?

Wenn Sie sich die Chrome-Entwicklertools ansehen, gibt es dort eine Reihe von Fehlern, Anfragen, die keine 200 sind?

In der Chrome DevTools-Konsole sehe ich Folgendes, es scheint eine 429 zu sein (ich weiß nicht, wofür die 404 ist):

content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
video.google.com/get_player?docid=1wQ5F_aEDhPpC8sW7ZTrAhbNVrSOAXsXr&ps=docs&partnerid=30&cc_load_policy=1:1 

       Failed to load resource: the server responded with a status of 404 ()
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
Show 1 more frame
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
fingerprintPage @ content-script.js:1
observeCheckoutMutations @ content-script.js:1
Show 3 more frames
Show less
content-script.js:1 cornhusk, shared-service, error: TypeError: Failed to construct 'URL': Invalid URLInvalid url: 
extractOriginPath @ content-script.js:1
fingerprintPage @ content-script.js:1
observeCheckoutMutations @ content-script.js:1
Show 3 more frames
Show less
jquery.js:9930 

       POST https://xxxx.com/message-bus/2089d5dd986440908b29e8064c58d208/poll 429 (Too Many Requests)
send @ jquery.js:9930
ajax @ jquery.js:9511
s @ message-bus.js:22
n.baseUrl.n.ajax @ message-bus.js:88
k @ chunk.660.3ca404a8b6b50dfefca7.js:2
n @ chunk.660.3ca404a8b6b50dfefca7.js:2
(anonymous) @ chunk.660.3ca404a8b6b50dfefca7.js:2
setTimeout (async)
complete @ chunk.660.3ca404a8b6b50dfefca7.js:2
e.complete @ message-bus.js:17
l @ jquery.js:3213
fireWith @ jquery.js:3343
E @ jquery.js:9632
abort @ jquery.js:9332
unsubscribe @ chunk.660.3ca404a8b6b50dfefca7.js:2
unsubscribe @ presence.js:179
_unsubscribe @ presence.js:397
unsubscribe @ presence.js:101
_setupChannel @ composer-presence-display.js:81
_setupChannels @ composer-presence-display.js:93
b @ index.js:207
l @ index.js:423
p.invoke @ queue.ts:201
p.flush @ queue.ts:98
h.flush @ deferred-action-queues.ts:75
$._end @ index.ts:616
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._end @ index.ts:623
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._end @ index.ts:623
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._end @ index.ts:623
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._end @ index.ts:623
_boundAutorunEnd @ index.ts:257
Promise.then (async)
n @ platform.ts:28
flush @ index.js:41
$._scheduleAutorun @ index.ts:803
$._ensureInstance @ index.ts:791
$.ensureInstance @ index.ts:579
scheduleRevalidate @ index.js:5390
dirtyTag @ validator.js:411
R @ validator.js:486
F @ index.js:497
z @ index.js:533
De @ index.js:1409
Te @ index.js:1385
set @ observable.js:175
save @ composer.js:707
saveAction @ composer.js:554
_triggerAction @ d-button.js:178
click @ d-button.js:144
jquery.js:9930 

       POST https://xxxx.com/message-bus/2089d5dd986440908b29e8064c58d208/poll?dlp=t 429 (Too Many Requests)
send @ jquery.js:9930
ajax @ jquery.js:9511
s @ message-bus.js:22
n.baseUrl.n.ajax @ message-bus.js:88
k @ chunk.660.3ca404a8b6b50dfefca7.js:2
n @ chunk.660.3ca404a8b6b50dfefca7.js:2
(anonymous) @ chunk.660.3ca404a8b6b50dfefca7.js:2
setTimeout (async)
complete @ chunk.660.3ca404a8b6b50dfefca7.js:2
e.complete @ message-bus.js:17
l @ jquery.js:3213
fireWith @ jquery.js:3343
E @ jquery.js:9632
(anonymous) @ jquery.js:9878
load (async)
send @ jquery.js:9897
ajax @ jquery.js:9511
s @ message-bus.js:22
n.baseUrl.n.ajax @ message-bus.js:88
k @ chunk.660.3ca404a8b6b50dfefca7.js:2
n @ chunk.660.3ca404a8b6b50dfefca7.js:2
document.addEventListener.e.onVisibilityChange @ chunk.660.3ca404a8b6b50dfefca7.js:2
callback @ message-bus.js:49
d @ user-presence.js:90
p @ user-presence.js:103
m @ user-presence.js:110
22:1 Error handling response: TypeError: Cannot read properties of undefined (reading 'isCheckout')
    at chrome-extension://clmkdohmabikagpnhjmgacbclihgmdje/content-script.js:1:5043
22:1 Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received

Das bedeutet, dass Sie zu schnell agieren und langsamer werden müssen. Dies ist ein Schutzmechanismus, um zu verhindern, dass jemand Ihr Forum mit Skripten überflutet. Viele Webanwendungen weisen Sie darauf hin, wenn Sie zu schnell agieren, und lehnen dann Ihre Aktion ab.

4 „Gefällt mir“

Das habe ich aus dem 429er geschlossen. Wenn Sie sich das obige Videobeispiel ansehen, wirkt es dann schnell? Das Forum sollte in der Lage sein, zwischen dem schnellen Erstellen von Beiträgen vom selben Konto/IP und einem Benutzer, der einen Beitrag etwa 5 Sekunden später bearbeitet, zu unterscheiden.

Außerdem: Und ich sehe keine Probleme beim Bearbeiten dieses Beitrags alle etwa 5 Sekunden. Dies ist jetzt meine 5. Bearbeitung innerhalb einer Minute.

6.: Also hat sich nach dem Upgrade auf 3.1.x etwas geändert, denn vorher hat es einwandfrei funktioniert. Oder hängt der 429er-Schwellenwert von der Anzahl der Einhörner ab?

Hat die 429 etwas mit der Anzahl der konfigurierten Einhörner (1 vs. mehr) zu tun? Ich sehe dieses Problem nicht auf dieser Website, aber durchgängig auf meiner Website.

Beeinflusst das diese Seite nicht? Ich kann hier meine Beiträge in Sekundenschnelle bearbeiten, ohne jegliche Probleme (ich habe es bis zu 8 Mal innerhalb weniger Sekunden hintereinander versucht), aber auf meiner Website scheint es ein Problem zu sein (selbst bei nur 2 Bearbeitungen).

1 „Gefällt mir“