私自身の経験では、主な原因はautogenerate_stylesheet
設定の使用にありました。問題は、 を呼び出すたびに css を再生成することadd_widget()
です。これにより、ブラウザが完全に停止します。さらに、gridster には、スタイルシートが複製され、多数<head>
の重複したスタイル ルールが埋められ、ブラウザーが難しくなるというバグがありました (このバグは修正されたと思われますが、私の経験では、修正は特定のシナリオでのみ機能し、間違いなく機能しませんでした)私の中で)。
gridster を使用していたとき、ウィジェットは常に同じサイズでした。したがって、私の場合、スタイルシートを一度生成するだけで、再生成する必要はありませんでした。
パブリック API の一部ではないと思いますが、generate_stylesheet()
手動でメソッドを 1 回だけ呼び出すことができます。
var gridster = $(".gridster ul").gridster({
autogenerate_stylesheet: false,
widget_base_dimensions: [140, 140],
//other options...
}).data('gridster');
gridster.generate_stylesheet({rows: 30; cols: 8});
//freely call gridster.add_widget(...); as many times as you like
スタイルシートは 1 回しか生成しないため、gridster がすべてのウィジェットを収容するのに十分な行と列のスタイル ルールを生成することを確認する必要があります。そうしないと、範囲を超えるとレイアウトが壊れてしまいます。を呼び出すときに行と列の上限を指定するだけgenerate_stylesheet(opts)
です。そうしないと、 gridster インスタンスがmax_rows
andに使用している値にデフォルト設定されているようmax_cols
です。
良い点は、スタイルシートを手動で生成することで、スタイルの重複バグも完全に回避できることです。
指数関数的な減速はなくなります。ハッピーグリッドスタリング。