2010-01-16 33 views
2

我是一個很長時間,通常很高興Prototype的用戶。我最近轉而使用jQuery,因爲它獲得了大量的社區支持,基本上達到了一致的選擇和事實上的行業標準。從那以後,我一直都不那麼開心。是的,我已經閱讀了比較線程,並且我可以在沒有少數移植的Ruby/Rails便利功能的情況下生活,如first(),last(),inspect(),collect()等,我可以重新熟悉select語法,甚至必須同意它可以是強大的。但是我不得不說,我對$.post()$.get()甚至整個表單插件沒有錯誤回調?!專用jQuery AJAX函數中的錯誤回調

jQuery中的標準是否真的在您需要錯誤回調時使用準系統ajax方法?我的ajax表單處理程序現在是5-10行,現在長度爲20-25行。在真實的Web應用程序中不要錯誤回調是否明智?或者我錯過了什麼?

+0

表單處理程序是如何從5-10行變爲20-25的?你可以粘貼jQuery代碼,也許有更好的方法來編寫它 – adamJLev 2010-01-16 23:07:07

回答

0

使用ajax方法真的不應該超過使用post/get。你必須使用不同的格式(屬性/值的映射),因爲參數的數量是可變的,但我沒有看到那麼麻煩。

$.post(url, data, success_cb, type) 

成爲

$.ajax({ 
    url: url, 
    data: data, 
    type: 'post', // the only extra thing 
    dataType: type, 
    success: success_cb } 
}); 

,如果你願意,你可以在錯誤增加到,完整,等回調。

+0

我想那麼我想知道,誰在Web應用程序中使用AJAX而不給用戶任何有關錯誤的反饋?正如你自己所說的,他們不會節省很多錢(雖然這不是表單插件的情況),他們說,驗證是不可能的。即使只是出現無法預料的服務器錯誤,您是否真的希望它只是默默地失敗?從這個角度來看,它讓我感到困惑,他們將被包含在覈心庫中。 – tfwright 2010-01-16 22:46:05

+1

有些情況下,您並不真正關心錯誤,比如說,記錄用戶交互。你真的想告訴用戶,他對'foo'鏈接的點擊操作沒有被正確記錄嗎?但是對於其他任何東西,$ .ajax都是要走的路 – adamJLev 2010-01-16 23:04:07

0

$ .post和$ .get是包裝$ .ajax功能的簡寫助手方法。 看看$ .ajax來查看錯誤回調以及所有這些東西。 http://docs.jquery.com/Ajax/jQuery.ajax#options

另請參閱ajaxEvents以獲取更一般的錯誤/進度處理。 例如,可以很容易地綁定到ajaxSend以在頁面上的某處顯示進度指示器。 http://docs.jquery.com/Ajax_Events

+0

所以錯誤回調應該與$ .get和$ .post(和json等)一起工作? 文檔中的以下代碼如何處理: //注意:顯然,只有在以這種方式調用 // Ajax調用時纔會返回「成功」。其他錯誤默默地失敗。 //請參閱上面有關使用$ .ajax的說明。 – tfwright 2010-01-16 22:34:04

+2

只有$ .ajax方法支持錯誤回調,但來自Prototype我不認爲你會介意使用$ .ajax的一切,或者你可以編寫類似於$ .get/post的新函數,但支持錯誤回調,包裝$ .ajax – adamJLev 2010-01-16 22:37:28

+0

剛剛看到了較新的文檔,並且post的信息專門標識了成功回調,沒有提及錯誤回調。這至少是高度混淆的...... – tfwright 2010-01-16 22:39:17