Что быстрее jQuery.load или jQuery.ajax () при загрузке HTML из файла PHP? - PullRequest
1 голос
/ 28 сентября 2011

У меня есть PHP-файл с именем «content.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);
  }
?>

А потом у меня есть файл Javascript, из которого я делаю AJAX-вызов PHP:

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()");
  }
});

Какой путь быстрее?

Помимо скорости запросов и возвратов, я хотел бы знать , какой путь лучше для безопасности приложения?!

Ответы [ 2 ]

5 голосов
/ 28 сентября 2011

Оба способа делают одно и то же.

Внутренне $(selector).load() использует $.ajax() для получения данных, затем $(selector).html() для установки html выбранного элемента в ответ на вызов $.ajax().

Если вы загружаете html в элемент, используйте $(selector).load(), потому что он более читабелен. Один такой же безопасный и быстрый, как и другой.

Примечание: Внутренне jQuery теперь использует $.parseHTML() вместо $(selector).html() для преобразования строки в html. Хотя это ничего не меняет.

0 голосов
/ 28 сентября 2011

Я не знаю специфики, но я не думаю, что есть разница в безопасности. load () и get () являются «оптимизированными» версиями ajax (), поэтому они всегда будут быстрее и лучше, но я не думаю, что вы или ваши посетители когда-нибудь почувствуете разницу в запросе, подобном вашему

...