ポストのURLアンカーを変更するWebコンポーネントを含むテーマコンポーネントでブラウザがフリーズ

皆さん、こんにちは。

素敵なマーメイドテーマコンポーネントを流用し、RapiDoc をウェブコンポーネントとして組み込むように変更しました。これにより OpenAPI 仕様をレンダリングできます。

ウェブコンポーネントでオペレーションをクリックすると、ブラウザがフリーズすることがあり、何が起こっているのか把握するのが困難です。
タブを閉じるしかありません。同じ RapiDoc バージョンと OpenAPI 仕様で、他のページに埋め込んだ場合にはこの問題は発生しません。

行われることは、オペレーションの ID を URL のアンカーとして追加することです。例: _https://my-site/t/my-topic/150#post-/clusters/-clusterID-/gateway。おそらく、URL 変更をリッスンしている何かが、このケースでは失敗しているのだと思います。おそらく、ウェブコンポーネントがまだ完全にレンダリングされていないか、または ID がシャドウ DOM で見つからないためでしょう。

コンソールで以下を確認しました。

Promise Rejection: SyntaxError: '#main #put-/clusters/-clusterID-/appliances/-applianceID-/constraints, a[name=put-/clusters/-clusterID-/appliances/-applianceID-/constraints]' is not a valid selector.

URL のアンカーに対応する ID を持つ挿入された要素は、以下のようになります。

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

この問題の核心にたどり着くためのヒントをどなたか教えていただけますでしょうか?

よろしくお願いします!

自分で質問に答えます:どうやら、Discourseとは全く関係なかったようです。
特定のパラメータの組み合わせが、WebコンポーネントをscheduleUpdateループに陥らせていました。
騒がしくしてすみません。

参考までに、私がやったことは以下の通りです。

  • テーマコンポーネントでrapidocの非圧縮版を使用しました。
  • サイトがフリーズしている間にデバッガーを使用しました。
  • コールスタックを見て、繰り返し更新を引き起こしている原因(show-curl-before-try)を見つけました。
  • rapidocのパラメータを変更し、このシナリオが再度発生しないようにしました。

このトピックが議論の役に立たない、または無関係だと感じた場合は、自由に削除してください。

とにかくありがとうございました。そして、再び騒がしくしてすみませんでした。

「いいね!」 2

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