私は自分のウェブサイトでオーディオプレーヤーを作成しました。時間に基づいてリスト項目を表示する
再生中のトラックに時間ベースのコメントが付いていて、トラックの進行状況がコメントのタイムスタンプに当たったときに表示させたい場合があります。
設定はul
で、コメントはli
となります。 li
はデフォルトでは表示されません。コメントのタイムスタンプをli
のデータ属性に追加しました。
例:
<ul class="comments">
<li data-timestamp="0">Check my page fans : http://www.facebook.com/ITBFLR</li>
<li data-timestamp="185525">great sub!</li>
<li data-timestamp="256931">@greenmono: Haha thank's dude</li>
<li data-timestamp="497073">Wicked mix de ;)</li>
</ul>
トラック(100 +)に多くのコメントが存在する場合があります。私のプレーヤーは、ミリ秒単位で現在のトラック進行を返します。
li
すべてを現在のトラックの進行状況よりも小さいタイムスタンプで一致させるセレクタを使用できますか?
jQuery用のカスタムセレクタプラグインがいくつかあります(たとえばA better data selector for jQuery)が、これは大きなボトルネック(パフォーマンスが賢明)かどうか疑問に思っています。
So:このソリューションを使用するのが賢明でしょうか、間違っていますか?
現在のソリューションのパフォーマンスに関係なく、バイナリ検索ツリーまたは同様のデータ構造を作成することができます。これにより、特定の値よりも小さい要素を簡単に選択できますキーはタイムスタンプ、値はDOMノードへの参照、または挿入しなければならないコメントだけです)。または、優先順位キューとしてminヒープを使用し、常に最初の項目を削除します。このような方法でデータを保存すると、他のこともできるようになります。ちょうど私の考え... :) –
あなたはそれらを表示する前に、サーバー側でこれらをソートしていない理由はありますか?クライアントでこれを行わないのが最善です。 – asawilliams
@asawilliams nopezそれは私に悪い例を示しているだけです:P – PeeHaa