1

ページング関数 getCollection() を 4 回呼び出したときに Uncaught RangeError: Maximum call stack size exceeded が発生しました。問題が発生している理由が正確にはわかりません。

jQuery('#card ul').append(template.render(data));

そして、その下にあるアラートのコメントを外します (正気を保つため)。4 ページ目以降は正常に動作しているようです。

私は jQuery 1.7.1 とBoris Moore の jsrender ライブラリを使用しており、さらに大きなデータ セットを非同期でレンダリングする前に問題が発生したことはありません。

var myCollection = {
  data: null,
  count: 0,
  page: 0,
  pageSize: 24
}
function getCollection(collection) {
  if (collection.length > 0) {
    var values = "",
    template = jQuery('#template');
    for (var i = myCollection.page * myCollection.pageSize; i <= ((myCollection.page + 1) * myCollection.pageSize) - 1; i += 1) {
    if (i != ((myCollection.page + 1) * myCollection.pageSize) - 1) {
        values += collection[i].card + ",";
    } else {
        values += collection[i].card;
    }
  }
  jQuery.ajax({
    url: '/api/cards?key=id&value=' + values,
    dataType: 'json',
    success: function (data) {
        if (data) {
            jQuery('#card ul').append(template.render(data));
            //alert(myCollection.page);
        }
    }
  });
  myCollection.page++;
}

どんな助けでも大歓迎です!!

4

1 に答える 1

0

@Dhaivat Pandya が示唆したように、テンプレートは登録済みのキーワードです。助けてくれてありがとう!

于 2012-06-26T21:25:42.053 に答える