FastComments.com Blog

Wed Aug 09 2023
...

コメントメニューの更新

! この記事には専門用語が含まれています

変更点

一部のFastCommentsテナントはコメントウィジェットをカスタマイズしています。これにより カスタマイズと当社の実装との間に契約が生まれます。我々はこの契約を壊さないよう最善を尽くしますが、 この発表の一環として小さな互換性のない変更があります。

開発者向け

コメントメニューのCSSセレクターが変更されました。

旧:

.comment .menu .menu-content

新:

.menu-content

既存のテナント

すでに「menu-content」セレクターを使用している場合、おめでとうございます!このセレクターを使用しているすべての テナントを調査し、ウィジェット設定を更新して壊れるのを防ぎました。

問題があればお知らせください。

理由

コメントウィジェットが作成されて以来、コメントメニューは純粋にCSS駆動のドロップダウンでした。これは コードをあまり必要としないシンプルで高速なドロップダウンメニューを実装するための素晴らしい方法です - これはFastCommentsの設計目標です。

しかし、年月が経つにつれて問題が発生しました。

一つは、コメントエリアに特定の高さがあり、スクロール可能な場合(ストリーミングチャットのように)、 メニューの下部にアクセスするのが難しく、メニューがスクロール可能なコンテンツ領域を越えようとするためです。 これによりメニューの一部が見えなくなり、意図していた作業を完了するために マウスを移動してメニューの上に再度ホバーする必要があります。我々はこれが使いづらいと感じました。

メニューの方向をに反転させるなどの回避策がいくつかありましたが、 ウィジェットの高さが十分でなく、メニューに多くのアクション項目がある場合(管理者向けなど)は これも機能しません。この場合、スクロール可能なコンテンツ領域の外にメニューをドロップするのが理想的です。

サイズの利点

この変更の一つの利点は、多くのコードを非同期で読み込むモジュールに抽象化できたことです。これにより ウィジェットの最初の読み込みを膨らませることなく、コメントデータに対して実行できるアクションを拡大できます。 これは、最初に編集メニューにホバーしたときにネットワーク呼び出しを発生させますが、 初期バンドルは非常に小さい(< 1kb)ので、あまり気にならないはずです。

ソフトウェアを進化させ続けることと、そのサイズを時間とともに減少させることは非常に難しいです。通常、ソフトウェアは 最初は速く、次第に遅くなります。したがって、FastCommentsを速く保つために努力し続けることを嬉しく思います:

Before: 28.76kb gzipped (108.02kb total)
After: 28.39kb gzipped (105.79kb total)

コードが少ないことは、ページ読み込み時にブラウザが解析するコードも少ないことを意味します。この影響は より多くの機能が追加されるにつれて拡大します。

性能の利点

旧メニューはすべてのメニュー項目をレンダリングし、拡張機能が項目を追加できるかを確認するために すべての拡張機能を読み込んでいました。そしてそれらをすべてレンダリングしていました - 各コメントに対して - そのため コンテンツはマウスの準備が整っていました。

通常30〜100のオブジェクトしかないため、これは大きな問題ではない傾向がありますが、影響は増大していました。 新しいシステムはこの懸念を取り除き、メニューは現在要求に応じてのみレンダリングされます。

トレードオフは、新しいメニューはJSを使用して我々が望むことを達成するために位置付けられ、レンダリングされることです。 引き続き最適化を行っていきますが、現在はうまく機能しています。

結論

これらの変更を導入する際の顧客のご理解に感謝します。これからもFastCommentsを愛していただけることを願っています。

乾杯!