5

リーダーボードプロファイルを表示するWebサイトでPietyプラグインを使用しています。$(document).ready各プロファイルには、Pietyが適用される要素の量が異なり、これらすべての要素が読み込まれる前にトリガーされることがわかりました。

これまでの私の解決策は、Pietyをからに移動すること$(document).readyでし$(window).loadた。これはほとんどのプロファイルでうまく機能します。ただし、リーダーボードの上部にいる人々は非常に大きなプロファイルを持っている$(window).loadため、Pietyのすべての要素を開始して作業するまでにかなりの待ち時間が発生します。

$(window).loadjQueryにすべてを一度に実行させるのではなく、ロード時に各パイを個別に呼び出すとしたら、パフォーマンスの問題があるのではないかと思います。

何かのようなもの..

から:

$(window).load(function(){
   $("span.pie").peity("pie", { ... })
}); 

に:

function loadPie(id){
    $("#"+id).peity("pie", { ... })
}

..そして各要素の後にloadPie。

4

1 に答える 1

1

プロファイルが DOM の準備ができた後に非同期的にロードされる場合、はい、ロードされた後にプロファイルごとに初期化することは理にかなっています。$(window).load()は、ページ上の他のすべて(プロファイルに関連するかどうかに関係なく) が完全に読み込まれるまで待機します。

考慮すべきことの 1 つは、Piety が各インスタンスに必要とするリソースです。プロファイル / 円グラフの数によっては、最後のプロファイルがロードされた後 (ただし、window.load の前) にすべてを一度に呼び出す方が高速な場合があります。私はこれをjsperfで少し更新しようとします...今すぐ仕事に向かいます:)

于 2012-09-11T14:13:43.130 に答える