使用jQuery .getJSON vs .post哪個更快?
$.getJSON();
或
$.post();
我試圖通過一個網頁,僅僅是AJAX請求 發送一些參數和JSON或HTML片段獲得了一定的成果。
我想知道哪一個更快?
假設HTML文件將是簡單的純文本布爾值(true或false)
使用jQuery .getJSON vs .post哪個更快?
$.getJSON();
或
$.post();
我試圖通過一個網頁,僅僅是AJAX請求 發送一些參數和JSON或HTML片段獲得了一定的成果。
我想知道哪一個更快?
假設HTML文件將是簡單的純文本布爾值(true或false)
正如其他人所說,這兩個功能之間並沒有真正的區別,因爲他們都將通過XMLHttpRequest
發送。
如果服務器正在處理具有相同代碼的兩個請求,則處理時間應該相同。
因此,可以將問題轉換爲HTTP GET請求或POST請求更快的問題?
由於POST請求需要兩個額外的HTTP標頭(Content-Type
和Content-Length
),與GET請求相比,後者應該更快(因爲更少的數據將被傳輸)。
但這只是速度,我認爲最好遵循REST這裏的指導方針。如果您要修改某些內容,請使用POST,如果您想要獲取某些內容,請使用GET。
另一件重要的事情,GET響應可以緩存,但我有problems caching POST。
他們都是包裝/供jQuery.ajax速記方法,所以不會是一個性能上的差異。
$.getJSON()
;是$.ajax();
的快捷方式,它也稱爲$.post();
,因此您不會看到太多差異(但會更容易直接使用$.getJSON()
)。
[編輯]寧姆比我快......
我不認爲這會有所作爲既利用ajax
,.post
加載數據使用http post
請求,其中作爲getJSON
使用http get
請求更多關於您不必明確告訴getJSON
dataType
如果它是一個HTTP操作,從服務器檢索數據持久(更新)任何東西,GET是使用正確的語義。
無論是發佈還是使用HTTP,性能差異都可以忽略不計,特別是考慮到WAN通信的變量。
這是舊的,但...
我們都必須記住:CSRF/XSRF。
如果你做這種方式:
$.ajax({ type: "POST", dataType: "json", url: url, data: { token : 'pass-some-security-token-here' }, cache: false, success: function(data) { //do your stuff here } });
你會接受她那麼像這樣,抵消最CSRF/XSRF
if (isset($_POST['token'])) { //you can also test token further //do your stuff her and send back result } else { //error: sorry, invalid, or no security token }
在許多情況下得到的是壞人的邀請,作爲getJSON使用GET HTTP請求。