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)
哪种方式更快?
除了请求和返回的速度,我想知道哪种方式更适合应用程序的安全性?!
两种方式都完全相同.
在内部,$(selector).load()用于$.ajax()获取数据,然后$(selector).html()将所选元素的html设置为$.ajax()调用的响应.
如果要将html加载到元素中,请使用,$(selector).load()因为它更具可读性.一个是和另一个一样安全和快速的.
注意:内部jQuery现在使用$.parseHTML()而不是$(selector).html()将字符串转换为html.但这并没有真正改变任何事情.