..


スポンサーリンク

jQueryの1.5の新機能

リカルドブランビラによって書かれた記事
3ページ中1ページ

これは、最初の基本的にバグ修正バージョン 、ポスト1.5.1のリターンに続いて我々の最愛のjQueryバージョン1.5から数週間のうち"。

私の最初の本能は、もう少し時間に残ることはもちろんのこと、私は1.4.xのブランチは既に非常によく自分の仕事に行ったという理由だけで場合はこの新しいリリースを大量生産するためにいくつかの時間を待つことができると思うにつながったバージョンは、ユーザーに安定性と安心感を与えます。

しかし、私は変更されているものを読むと、追加したとき、私はすぐに私の心を変えた。

1.5の変更点は、一般にはあまりない特にその変化画期的呼ぶことを躊躇しないでフォームのAjax開発者は、で、舞台裏で行われているどれだけの作業にさらされている機能にそれほど充実していますが、(のフレームワークがすでに使用しているものここでは、今ご紹介)が、jQueryのために。

我々は、もう少し具体的に何が起こっているのか、参照してください。

フォームのAjaxの革命(とリファクタリング)

$延長。アヤックス()

フレームワークの開発チームは、ほとんどのAjax APIのは$の機能を拡張する3つの方法を提供するに書き直されているアヤックス():。プレフィルタ、コンバータとトランスポートは、

プリフィルタ

プレフィルタは、$で前のいずれかの治療の選択肢に、マニュアルの説明に従って、Ajaxリクエストが実際に送信される前に呼び出されるコールバック関数であり、と。Ajaxは()自体。

プレフィルタは、$を使用して記録されますAjaxPrefilterは()。:

 



 $。AjaxPrefilter(機能(オプション、originalOptions、jqXHR)

 

私はjqXHRは、XMLHttpRequestをに富む現在のラッパーとして考えるものを説明します。

ドキュメントの中で最も興味深い例は、既存のオプションを変更するプレフィルタ使用の可能性を説明しています






 $。AjaxPrefilter(機能(オプション){



  



 {(options.crossDomain)場合



    



 options.url ="http://miodominio.it/proxy/"+ encodeURIComponent(options.url);



    



 options.crossDomain =偽;



  



 }







 });



と言って、オプションがクロスドメインである場合、コールは、URLの http://mydomain.net/proxy/にプロキシされます。

コンバータ

コンバータは 、受信したデータ型が期待されるものと異なっているときに呼び出されるコールバック関数です。

$を使用する"ことが可能AjaxSetup()をグローバルに登録する:






 $。AjaxSetup({



  



コンバータ:{



    



 "Miodatatypeテキスト":機能(textValue){



      



場合(有効な(textValue)){



        



解析する/ /ここではカスタムロジック!



        



リターンをmiodatatypeValue。



      



他に{}



        



 / /は、パースエラーを通知します



        



例外をスローする。



      



 }



    



 }



  



 }







 });



またはそれを必要とする各コールの直接インライン呼び出します。





 $。アヤックス(URL、{



  



データタイプ:"XMLテキストmiodatatype"



  



コンバータ:{



    



 "XMLのテキスト":機能(xmlValue){



      



 / /ここで、ロジックを解析!



      



 textValueに戻ります。



    



 }



  



 }







 });



コンバータを使用するために最も理にかなっ理由は、それは戻り値の型、最初の例として使用される独自のデータ型を定義する方法を提供することです、我々はこのタイプのmiodatatypeを要求することができます。






 $。アヤックス(URL、{



  



 dataTypeは:"miodatatype"







 });



注:データ型は小文字の文字列として定義されている必要があります。

トランスポート

そこに十分なコンバータは、プレフィルタはあったと私たちのAjaxリクエストを整形するため、オブジェクトは、ドキュメントは最後の手段を定義していること利用可能なトランスポートを行っている(ように変換するというその"使用しない"または、それらを使うように強いられて感じる場合"、おそらくあなたに反映すべきとした場合使用している論理")。

しかし、トランスポートには二つの機能を提供: センド中止を、$を使用して記録されるべきですAjaxTransport()。。

ここではマニュアルに記載されている基本的な例は、次のとおりです。






 $。AjaxTransport(機能(オプション、originalOptions、jqXHR){



  



場合(/ * transportCanHandleRequest * /){



    



 {返す



      



送信:関数(ヘッダ、completeCallback){



        



 / *キューの送信* /



      



 }、



      



中止:関数(){



        



 / *アボートコード* /



      



 }



    



 };



  



 }







 });



と、ユーザーの便宜のために変換のパラメータの説明:

  1. オプションは、リクエストのオプションです。
  2. originalOptionsオプションがメソッドに渡されるだけでなく、アヤックス、modiifcateは、デフォルトではとajaxSettingsなしで定義されていない
  3. jqXHR jqXHRは、要求の対象となります
  4. ヘッダとトランスポートがサポートされている場合送信できるリクエストのマップのキー/値
  5. completeCallbackは、Ajaxリクエストの完了を通知する機能です。

次のようにcompleteCallbackの典型的な構造は次のとおりです。

 



機能(状態、statusText、レスポンス、ヘッダ){}

 
ここで:
  1. ステータスは、応答のHTTPステータスコード、古典的な200や404は...
  2. statusTextは、応答の説明です
  3. たとえば、 プレーンテキストの応答::{テキスト:textData} レスポンスは、トランスポートで受け入れられるすべての形式で答えが含まれているデータ型/値を定義するオプションのマップです。
  4. ヘッダは XMLHttpRequest.getAllResponseHeadersヘッダ()によって提供される応答を含むオプションのストリングです。

我々は、モジュールAjaxの柔軟性を高めるために追加されているものを説明してきましたが、一般的な使用のために私はそれ繰延の導入で非常に興味深いコメントを発見しかしjqXHRは、Ajax呼び出しから返される新しいオブジェクトを定義するその前に。

jqXHR

jqXHRファミリ 、プロミスで定義されたすべてのメソッド、プロパティおよび動作を提供することにより、インターフェイスのプロミスを実装 、XMLHTTPRequestオブジェクトのスーパーセットです。

定義: プロミスは、タスクの結果の読み取り専用ビューであり、トランザクションの完了によって返された値を表す。

詳細については参照してくださいここに

同じカテゴリの...
E -ラーニング
CSS(コース) CSS(コース)
W3C CSSやXHTMLに応じてWebデザインとアクセシビリティ。 29€から開始。
HTML(コース) HTML(コース)
29€からWeb用のマークアップ言語。
ジャバスクリプト(コース) ジャバスクリプト(コース)
クライアントサイドスクリプトへのガイドを完了します。 39€から。
スポンサーリンク