从PHP文件加载HTML时,更快的jQuery.load或jQuery.ajax()是什么?

Nik*_*iko 1 ajax performance jquery jquery-load

我为这两种请求准备了名为"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);
  }
?>
Run Code Online (Sandbox Code Playgroud)

而且我有Javascript文件,我正在从中对PHP进行AJAX调用:

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()");
  }
});
Run Code Online (Sandbox Code Playgroud)

哪种方式更快?

除了请求和返回的速度,我想知道哪种方式更适合应用程序的安全性?!

use*_*654 5

两种方式都完全相同.

在内部,$(selector).load()用于$.ajax()获取数据,然后$(selector).html()将所选元素的html设置为$.ajax()调用的响应.

如果要将html加载到元素中,请使用,$(selector).load()因为它更具可读性.一个是和另一个一样安全和快速的.

注意:内部jQuery现在使用$.parseHTML()而不是$(selector).html()将字符串转换为html.但这并没有真正改变任何事情.