0

Backbone のテンプレートで文字のブロックをレンダリングしています。テンプレートは文字のリストを受け取り、それらを (アンダースコアのシャッフル メソッドを使用して) シャッフルし、画面上のグリッドに表示します。画面を数回レンダリングし、そのたびにリストをランダム化してシャッフル効果を持たせるのはクールだと思いました。

そこで、次のようにテンプレートを呼び出すビューでこれを実行しようとしました:

for(var i=1; i<50; i++){
     this.$el.html(this.template(jQuery.extend(this.model.toJSON(), extended_options)));..
}

そしてテンプレートで:

 temp_list = _(listcontents).shuffle()
  for(var character in temp_list)
  { %> <span><%= temp_list[character] %></span> <% }
}

しかし、シャッフル効果はまったく見られませんでした。画面が 1 回レンダリングされるまでに数秒しかかかりませんでした。

ユーザーの目の前でレンダリングをすばやく繰り返すにはどうすればよいですか?

4

1 に答える 1

0

for ループはテンプレートを 50 回非常に高速にレンダリングしています。あなたはこれを行うことができます:

for(i = 0; i < 50; i++) {
  setTimeout(function() {
    this.$el.html(this.template(...);
  }, i * 50);

これが基本的に行っていることは、約 50 ミリ秒でレンダリングの間隔を空けることです。目的の効果を得るには、i * 50 の部分をいじる必要がある場合があります。

于 2013-09-12T05:17:52.060 に答える