0

プレイリストが空の場合に非表示に設定されている SoundCloud ウィジェットがあります。誰かがプレイリストに曲を追加したとき(追加ボタンをクリックしたとき)に、条件を再確認する方法はありますか?

  <% if @current_user.id == Integer(@party_profile.host) %>
    <div <% if @firstsong == "undefined" %> style="display:none;" <% end %>>
      <object height="81" width="80%" id="myPlayer" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
        <iframe id="sc-widget" width="95%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/<%= @firstsong %>&show_artwork=true&liking=ture&sharing=true&frameborder="no"&scrolling="no"&enable_api=true&object_id=myPlayer"></iframe>
      </object>
    </div>
  <% end %>

サウンドクラウド ウィジェット onclick の一部を更新する代わりに、このルビ条件を追加した理由は、誰かが曲を追加するたびにウィジェットを更新したくないためです (プレーヤーが非表示で、新しい曲が追加された場合のみ)。 .

4

2 に答える 2

0

ここでいくつかのこと:

  1. (朗報)新しい HTML5 ベースのウィジェットがあり、これもフラッシュのものよりもはるかに優れています (iOS などで動作します)。
  2. (朗報) ウィジェットにはAPIがあります。
  3. (悪いニュース) プレイリストのコンテンツに関するリアルタイムの更新を取得することは、SoundCloud API もウィジェットもそのために設計されたものではありません。パフォーマンス上の理由から、ある程度のキャッシングが行われます。これは、ウィジェットが取得するものが実際よりも少し遅れる可能性があることを意味します。

使用目的を知らずに、最適なソリューションを判断することは困難です。

于 2013-02-20T01:45:41.137 に答える
0

いいえ、サーバーがクライアントにそれを渡すと、すべての erb コンテンツが固定されます。ただし、できることは、クライアント側のイベントを処理する js 関数を作成することです。

$().ready(function() { $("#some_id_of_a_dom_element_that_changes_due_to_a_user_addition").change(function() { $("song_container").show() }) })

于 2013-02-19T20:12:10.660 に答える