Ext.Ajax.request和formPanel.getForm().submit兩種提交方法的區別

來源:互聯網
上載者:User

Ext.Ajax.request和formPanel.getForm().submit()兩種提交方法的異同:

1、 相同點:

a) 都是使用非同步提交的方式;

b) 預設都是使用POST方式來提交資料;

2、 不同點:

a) Request方法不可以使用waitMsg屬性來設定在等待響應過程中顯示的資訊,而submit方法提交時這個設定是可用的(可以看到效果,而前面說的不可用是指設定了看不到效果);

b) Request方法必須將要提交的參數手動組織好然後作為名為params的參數的值才能提交到伺服器,而submit方法會將表單內所有input元素組織好提交;

c)  Request方法提交時,回呼函數中會傳入兩個參數(response,option),前者是請求的響應對象,伺服器對於請求的響應資訊可以通過它的responseText屬性得到(也就是response.reponseText就可以得到伺服器返回的字串),第二個參數是提交的參數對象,一般不需要用到,如果要讀取返回的響應資訊,要先用Ext.decode方法將其resonseText屬性值轉換成json對象才可以讀取;如伺服器端返回的是一個json格式的字串:{success:true,msg:'sample'},則用戶端要讀取這個資訊,可以這樣:var returnResult = Ext.decode(response.responseText); alert(returnResult.msg);submit的情況下回呼函數參數是(form,action),如果想讀取響應資訊,只需要訪問action對象的result屬性就可以了,像上述同樣的返回資訊,讀取的樣本:alert(action.result.msg);不過有一點要注意的是,當網路資料轉送失敗或資訊丟失的情況下,action中可能沒能取到伺服器返回的訊息,也就是說,result不一定會存在msg屬性,如果不經判斷就訪問,有可能會引發異常;

d) Request方法提交後,無論返回的json結果中success屬性是否為true,回呼函數都會到success:function()裡面執行,所以在這種情況下,必須在success方法體裡再到result.success進行判斷以得到真正的執行結果,所以,只有在出現網路錯誤,連不到伺服器或找到響應頁面(404)時,failure回調方法才會被執行;而Submit方法在返回的結果中,如果success為true的,就會自動執行success:function,如果是false,則會執行failure:function了,所以沒有必要再在裡面判斷success是true或false,另,跟request時一樣,當出現網路錯誤或其它未知錯誤時,failure:function也會被執行;

備忘:造成這種結果的原因不難理解,因為在上面第三點提到,request請求的情況下返回的結果是以字串的形式擷取的,也就是說ext並未到其進行解析,所以它也識別不了裡面返回的結果是成功還是失敗,只是把一個字串帶回來了,而submit方法提交時,返回的action.result對象已經將響應資訊解析了,它能讀取其中的success屬性的值,所以能夠根據不同的success屬性來執行相應的回調方法)

更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/ajax/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.