Theme-Komponente, die eine Webkomponente enthält und den URL-Anker des Beitrags ändert, friert den Browser ein

Hallo Leute,

Ich habe die nette Mermaid-Theme-Komponente gestohlen und sie so modifiziert, dass RapiDoc als Webkomponente enthalten ist. Sie ermöglicht das Rendern von OpenAPI-Spezifikationen.

Wenn man in der Webkomponente auf eine Operation klickt, friert der Browser manchmal ein, und ich habe Schwierigkeiten herauszufinden, was passiert.
Nur das Schließen des Tabs hilft. Dies geschieht nicht mit derselben RapiDoc-Version und derselben OpenAPI-Spezifikation, wenn sie in andere Seiten eingebettet sind.

Was es tut, ist, dass es die Operation-ID als Anker zur URL hinzufügt, z. B. _https://my-site/t/my-topic/150#post-/clusters/-clusterID-/gateway. Ich vermute, dass etwas auf URL-Änderungen hört, das in diesem Fall fehlschlägt, vielleicht weil die Webkomponente noch nicht vollständig gerendert ist und/oder die ID nicht im Shadow DOM gefunden werden kann.

Ich habe Folgendes auf der Konsole gesehen:

Promise Rejection: SyntaxError: '#main #put-/clusters/-clusterID-/appliances/-applianceID-/constraints, a[name=put-/clusters/-clusterID-/appliances/-applianceID-/constraints]' ist kein gültiger Selektor.

Das eingefügte Element, das die ID trägt, die dem Anker in der URL entspricht, sieht so aus.

<section
  part="section-endpoint"
  id="patch-/clusters/-clusterID-"
  class="m-endpoint regular-font patch collapsed"
>

Hat jemand Tipps für mich, um dem Problem auf den Grund zu gehen?

Vielen Dank!

Meine eigene Frage beantwortet: Es scheint, dass es doch nichts mit Discourse zu tun hatte.
Eine bestimmte Kombination von Parametern brachte die Webkomponente in eine scheduleUpdate-Schleife.
Entschuldigung für die Störung.

Zur Referenz, hier ist, was ich getan habe:

  • Verwendete eine nicht minimierte Version von Rapidoc in der Theme-Komponente
  • Verwendete den Debugger, während die Seite feststeckte
  • Schaute sich den Call-Stack an und fand den Auslöser für wiederholte Updates (show-curl-before-try)
  • Ändert die Parameter von Rapidoc, um dieses Szenario nicht mehr auszulösen

Wenn Sie der Meinung sind, dass dieses Thema nicht zur Diskussion beiträgt/irrelevant ist, können Sie es gerne entfernen.

Danke trotzdem und nochmals Entschuldigung für die Störung.

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.