あなたに多くの希望を与えないという危険を冒して…。
すべてのjavascriptステートメントは、同じイベントスレッドで(時系列で)その後に来る他のすべてのステートメントを「保持」し、潜在的に(javascriptはシングルスレッドであるため)将来のスレッド全体を「保持」すると言えます。
そのことを念頭に置いて、ここでのポイントは、.buttonset()
他のすべてを維持するほどではなく、低速(100個のコンテナーに適用した場合)であり、代替プラグインを見つけて作成できない限り、その固有の低速は克服できないと思います。より速く実行されます。
見かけのパフォーマンスを向上させる最も現実的な希望は、実行順序を変更して、$('.checkboxViewset').buttonset();
ステートメントが現在保持しているコードの後に実行されるようにすることです。
次のことを試してください:
- ステートメントを、それが置かれているイベントハンドラーの一番下に移動します。
- ステートメントを独自の遅延起動$(function(){...})ハンドラーに配置します。
- 残りのjQueryを$(function(){...})ハンドラーに入れて、ステートメントを独自の
window.onload = function(){...}
ハンドラーに配置します。buttonset()
ここでのペナルティは、スタイリングが適用される前に、ユーザーがスタイルなしコンテンツのフラッシュ(FOUC)を取得する可能性が高いことです。
編集:
別の考え方では、1つのdivに相当するボタンを提供し、それをスタイリングして.buttonset()
から99回クローンを作成して100にすることができます。もちろん、このアプローチの実行可能性は、divが構造的に同一であり、それらを必要としないかどうかに依存します。独自のID/値/データ。