1

例として、両方の種類のリクエスト用に「content.php」という名前のPHPファイルを用意しました。

<?php
  // Id params passed via GET method
  $get = $_GET['param'];
  switch ($get) {
    case "param_value":
?>
  <div data-param="<?php echo $get; ?>">
    // My HTML content here
  </div>
<?php
      break;
    case default:
      break;
  }

  // Id params passed via POST method
  $post = $_POST['param'];
  if ($post != "") {
    $data['output'] = '
      <div data-param="<?php echo $get; ?>">
        // My HTML content here
      </div>
    ';
    echo json_encode($data);
  }
?>

そして、私がPHPへのAJAX呼び出しを行っているJavascriptファイルを持っているよりも:

var oWrapper = jQuery("#wrapper"),

// Loading HTML via jQuery.load() function
    sParams = jQuery.param({ param: "value" });
oWrapper.load("/content.php?" + sParams, function () {
  console.log("content loaded via load()");
});

// Loading HTML via jQuery.ajax() function
jQuery.ajax({
  type: "POST",
  dataType: "json",
  url: "/content.php",
  cache: false,
  data: { "param": "value" },
  success: function (data) {
    oWrapper.html(data.output);
    console.log("content loaded via ajax()");
  }
});

どちらが速いですか?

リクエストとリターンの速度に加えて、アプリのセキュリティにとってどちらの方法が良いか知りたいですか?!

4

2 に答える 2

5

どちらの方法でも、ほとんど同じことができます。

内部的には、$(selector).load()を使用$.ajax()してデータを取得し$(selector).html()、選択した要素の html を$.ajax()呼び出しの応答に設定します。

要素に html をロードする場合$(selector).load()は、読みやすいので を使用します。一方は他方と同じくらい安全で高速です。

注:内部的に jQuery は、文字列を html に変換するのでは$.parseHTML()なく、使用するようになりました。$(selector).html()これは、実際には何も変わりません。

于 2011-09-28T18:45:14.600 に答える
0

詳細はわかりませんが、セキュリティに違いはないと思います。load() と get() は ajax() の「最適化された」バージョンであるため、常に高速で優れていますが、あなたやあなたの訪問者があなたのようなクエリの違いを感じることはありません

于 2011-09-28T18:49:26.133 に答える