2011-09-28 53 views
1

我已經PHP文件名爲「content.php」兩種類型的請求的準備,只是作爲一個例子:從PHP文件加載HTML時,更快的jQuery.load或jQuery.ajax()是什麼?

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

哪種方式更快?

除了請求和退貨的速度,我想知道哪種方式更適合應用程序的安全 ?!

+1

'.load'只是'$ .ajax'(和'$(element).html(data)')的簡寫,沒有其他區別。你也可以使用'.post('/ content.php',{「param」:「value」},function(){},'json');'或'$ .getJSON(「/ content.php? 「+ sParams,function(){});'這也只是'$ .ajax'的簡寫。 –

回答

4

這兩種方式幾乎完全相同的事情。

內部,$(selector).load()使用$.ajax()來獲取數據,然後$(selector).html()到所選元素的HTML設置爲$.ajax()呼叫的響應。

如果您要將HTML加載到元素中,請使用$(selector).load(),因爲它更具可讀性。一個和另一個一樣安全和快速。

注意:內部jQuery現在使用$.parseHTML()而不是$(selector).html()將字符串轉換爲html。儘管如此,這並沒有改變。

0

我不知道具體細節,但我不認爲安全性有所不同。 load()和get()是ajax()的「優化」版本,所以它們總是會更快更好,但我並不是你或你的訪問者會感受到像你這樣的查詢中的差異

相關問題