1

以下の関数を作成しました。これは基本的に、特定の URL の HTML を解析し、特定のクラスをスキャンして、見つかったテキストを処理します。

私の関数の小さなサンプル:

function displayRating(theID){
  var $theUrl = $('#' + theID + ' > a').attr('href');
  jQuery.support.cors = true;
  var num, str, nums=[], avgnum, avgstr, avgnums=[];
  $.ajax({
    url: $theUrl,
    type: "GET",
    timeout: 3000,
    dataType: "text",
    success: function(data) {
      $(data).find(".count").each(function () {
        str = $(this).text();
        num = parseInt(str.substring(1,str.length-1), 10);
        nums.push(num);
      });
      var totalSum = 0;
      for (var i = 0; i < nums.length; i++){
        totalSum += nums[i];
      }
     more code here...
  });
}

複数のページから収集できる複数のデータを表示する必要があるため、この関数を 15 回呼び出します。この方法では、httpリクエストの数が関数が呼び出される数 (15) と同じになることを望んでいました。ただし、非常に大きな数 (340) を取得します。これは、HTML を解析するときに、呼び出した URL に含まれるすべての画像をバックグラウンドで要求することを意味します。これは、ページの読み込み時間が許容できないことを意味します (5 ~ 6 秒)。

私の質問は:バックグラウンドですべての画像をロードせずに HTML をプレーンテキストとして読み取るように、この関数を最適化できますか? これらのリクエストを最小限に抑える方法はありますか?

注: 残念ながら、PHP はオプションではありません。

4

1 に答える 1