1

私のアプリは何をしますか:

  1. 情報を非同期的にストリーミングします (これはコメット スタイルのアプリで、Faye を使用しています)。
  2. カルーセルへの追加。
  3. 7秒間表示します。
  4. 手順 (2) を繰り返します。

私の問題は何ですか: 到着した瞬間にデータをカルーセルに追加すると、現在の表示が上書きされます(7秒を無視します)。

私がやっていること: 新しいデータが到着したときに行を取得し、7 秒後に行の最初の要素がそれをポップして追加するように、coffeescript で「待機行」を作成しようとしています。setTimeout を使用しようとしましたが、非同期であるため機能しませんでした。

例:

line = []
# the second parameter is the callback function when a new data arrives
faye.subscribe 'my/channel/', (data) -> 
  appendEl = (el) ->
    $('.my-container').append(el)
    line.slice(0,1)
  line.push(data)
  # I think this could work if timeout could block, like sleep()
  # So when new data arrives it will get in line
  my_time = setTimeout(appendData(data), 7000)
  if line.empty?
    clearTimeout(my_time)

それが最善のアプローチであるかどうかはわかりません。ライブデータをストリーミングするのはこれが初めてのアプリです。

4

1 に答える 1