ExtJS Ext.Ajax.requestとform 1.get Form().submitの基本的な違い


同じ点:すべてAjaxの提出方式に属します。
異なる点:Ext.Ajax.requestはExt.data.co nnectionの一例である。
              form 1.get Form().submitはBaic Formの一つの実現方式です。
使用上の違い:
1.form 1.getForm().submitはフォーム提出時によく使われています。つまり、ページデータを提出します。たとえば、データページの新規作成と修正を行います。
2.Ext.Ajax.requestは通常、パラメータに従って提出する時、例えば削除します。私達はページの選択したIDを遍歴して、一つのArayにカプセル化して、一つのパラメータとしてAjaxの提出をします。
例:
まずform 1.getForm().submitの例です。
function formSubmit(){
   if (form1.getForm().isValid()) {
    form1.getForm().submit({
     waitTitle : '  ',//  
     waitMsg : '         ...',//    
     url : 'eidtBooktype.action',
     method : 'post',
     params : 'booktype',
     success : function(form, action) {
      var flag=action.result.msg;
      window.returnValue='SUCC'; 
      Ext.Msg.alert('  ',flag,function(){
       window.close();
      });
     },
     failure : function(form,action) {
      var flag=action.result.msg;
      Ext.Msg.alert('  ', flag);
     }
    });
   }
}
次に、Ext.Ajax.requestの例である。
Ext.Ajax.request({
         url : 'deleteBooktypes.action',
        method : 'post',
        params : {delids:deleteids.toString()},
        success : function(form,action) {
         //alert(response.responseText); //   json     
         var respText = Ext.util.JSON.decode(form.responseText); //      json  
         var msg=respText.msg;
         Ext.MessageBox.alert('  ',msg,function(){
          bookTypeStore.reload();
         });
        },
        failure : function(response,options) {
         var respText = Ext.util.JSON.decode(response.responseText); //      json  
         var msg=respText.msg;
         Ext.MessageBox.alert('  ',msg,function(){
          bookTypeStore.reload();
         });
        }
       });
使用はいの違い:
一番明らかなのはsuccessとfailure時のfunctionのパラメータです。
Ext.Ajax.requestのfunction、optionsは非常に有用です。reponse.reponse Textでパラメータを返します。この場所のreponseパラメータはactionに変えられます。
form 1.get Form().submitのfunction(form,action)は、actionが有用で、actitions.result.msgで戻り値を取得します。
また一番明らかな違いはExt.Ajax.requestがwaitMsgを使ってはいけません。本当にExtの失敗です。
 
=================================================================================================================================================
前:  バックグラウンドの文字列への返信に成功しました。  バックグラウンドが失敗して文字列に戻りました。{success:false,errors:'操作が失敗しました。''  submiが提出されると、actionはバックグラウンドが存在しません。次の図の文字列に戻ります。  次のすべてのactionは存在しません。urlパスが存在しないということです。  FormPanel提出コードは以下の通りです。
Javaコード 
var G = new Ext.form.FormPanel({}        G.getForm().submit(//クライアントのデータをサーバに提出する                        url:wayfoon.MMS.DataPage +'/ext 2 Upload.action'は、                           //waitMsg:「フォームデータを提出しています。少々お待ちください。。。」                            failure:function(form) action){                           Ext.Message Box.alert('警告'は、 action.result.errors);                               },                              success: function(form) action){                             Ext.Message Box.alert('情報'は、 action.result.msg)                        }                         });    [java]  view plin copy
var G = new Ext.form.FormPanel({}       G.getForm().submit(//クライアントのデータをサーバに提出する                       url:wayfoon.MMS.DataPage +'/ext 2 Upload.action'は、                          //waitMsg:「フォームデータを提出しています。少々お待ちください。。。」                           failure:function(form) action){                           Ext.Message Box.alert('警告'は、 action.result.errors);                              },                             success: function(form) action){                            Ext.Message Box.alert('情報'は、 action.result.msg)                        }                        });    バックグラウンドjson文字列successの値に基づいて自動的にfailureまたはsuccessを選択しても良いし、データが不正で強制的に提出された場合など、フロントエラー(failureプロセス)をキャプチャしても良いです。  バックグラウンド文字列はactions.resultを通じてjson文字列に変換する必要があります。習慣的な方法で使用します。  楽屋の異常処理に対して、たとえばactionが存在しないと、どうすることもできません。JavaScriptエラーが発生します。  エラー箇所、ext-all.jsのコード
Javaコード 
this.decode = function(json) {           //alert(json)      return eval("(" + Json + 「」)    }   [java]  view plin copy
this.decode = function(json) {           //alert(json)     return eval("(" + Json + 「」)    }   上の図の文字列をjson文字列に変換できなくて、どの流れを行っているか判断できなくなりました。正常な場合には、「success:true,msg:'操作が成功しました!」または他の文字列が返されます。  上のコードをtry{}catch(){}を使ってみましたが、やはりJavaScriptエラーを解決できません。このようなバックグラウンドエラーを避けられます。解決しなければならないなら、良い解決方法があるかどうか分かりません。  Ext.Ajax.request提出コードは以下の通りです。
Javaコード 
Ext.Ajax.request({       url:wayfoon.MMS.DataPage+'/cpSMS.action=submitSMS'は、       method:'POST'       params:'id='+id       success:function(form,action){           var OB = Ext.util.JSON.decode(form.reponseText);           if(obj.success==true)           {                 Ext.Msg.alert('ヒント',obj.msg)               ds.reload()           }            else           {               //Ext.Msg.alert('ヒント',obj.errors);                Ext.Msg.alert('ヒント',obj.msg)           }          },        failure:function(form、action){           Ext.Msg.alert('警告'、'システムエラー')       }    }   [java]  view plin copy
Ext.Ajax.request({       url:wayfoon.MMS.DataPage+'/cpSMS.action=submitSMS'は、       method:'POST'       params:'id='+id       success:function(form,action){           var OB = Ext.util.JSON.decode(form.reponseText);           if(obj.success==true)           {                Ext.Msg.alert('ヒント',obj.msg)               ds.reload()           }           else           {               //Ext.Msg.alert('ヒント',obj.errors);               Ext.Msg.alert('ヒント',obj.msg)           }         },       failure:function(form、action){           Ext.Msg.alert('警告'、'システムエラー')       }   }   バックグラウンド文字列は、Ext.util.JSON.decodeを介してjson文字列に変換されます。  自動的にjson文字列successの値に基づいてフローを選択することができません。どの流れをたどるかは、Obj.successの値によって判断します。  このfailure:システムの異常を捉えることができます。例えば、バックグラウンドやactionにデータが提出されていない場合、failureフローを実行します。