2014-10-08 87 views
0

我對jQuery仍然比較新,所以我想知道使用AJAX將多個變量發送到PHP的最佳做法是什麼。舉例來說,我應該把這些變量在包中,如:使用AJAX發送多個變量的最佳實踐

$.ajax({ 
    data:{ 
     input: {x: 1, y: 2} 
    }, 
    ... 
}) 

或並將其作爲單獨的變量,例如:

$.ajax({ 
    data:{ 
     x: 1, 
     y: 2 
    }, 
    ... 
}) 

是否有任何性能優勢或任何其他類型的使用一個受益在另一方面?

感謝您的時間, LL

+1

。在你的代碼示例沒有區別許多領域的最簡單,節省佈局風格。 – 2014-10-08 19:47:59

+1

投票結果主要是基於意見的,因爲真的,這只是個人偏好。我更喜歡第二個。 – 2014-10-08 19:51:22

+0

第一個將在後端速度較慢,因爲反序列化更復雜,隨後需要一個額外的步驟來訪問成員(我不太瞭解PHP如何使用內存,所以這可能是無關緊要的)。在這種情況下,這是一個微不足道的細微差別,我無法想象你會關心如此小的性能問題,所以它真的可以歸結爲你更喜歡的東西。 – UpQuark 2014-10-08 19:56:39

回答

0

這取決於您的使用。如果你只需要簡單的變量(一個或兩個),你可以像第二個那樣直接傳遞它們。但是如果你需要傳遞一個複雜的結構化數據,你可以選擇第一個。但是,如果你有更復雜的結構化數據作爲ajax參數,服務器端反序列化可能會很慢。 - 一些相關的鏈接 - Getting "The JSON request was too large to be deserialized"

2

此功能是當有一個形式.serialize()

<html> 
    <body> 

    <form action="#" id="formsend" method="post" name="formsend"> 
    <input name="val1" id="val1"> 
    <input name="val2" id="val2"> 
    <input name="val3" id="val3"> 
    ...... 
    </form> 
    <a href="javascript:;" id="btn_send" >Send</a> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type= "text/javascript"></script> 

    <script> 

$("#btn_send").click(function() { 
    $.ajax({ 
     type: 'POST', 
     url: 'ajax/ImAjaxPhpFile.php', 
     data: $("#formsend").serialize(), // send all form 
     beforeSend: function(){    
     }, 
     complete: function(){ 
     }, 
     success: function(a){        
      alert (a); 
     } 
    }); 
}); 


    </script> 
    </body> 
    </html>