2009-08-07 7 views
15

jQueryでAJAX呼び出しを行うときに、load(url、data、callback)メソッドをjQuery.get(url、data、callback、type)に対して使用する必要がありますか?AJAX jQuery.load対jQuery.get

+1

詳細:http://stackoverflow.com/questions/3870086/difference-between-ajax-and-get-and-load – cregox

答えて

20

まず、これらの2つの機能は完全に異なります。 'load'関数はセレクタで動作し、選択されたグループ内でAJAX呼び出しの結果をロードし、コールバックはコールの「完了」イベントを処理します。 $ .get関数はより一般的ですが、コールバックはAJAX呼び出しの成功応答を処理します。ここで自由に任意の動作を定義できます。そして、jQueryフレームワークのドキュメントと仕様を見るだけで、この情報をすべて見つけることができます。

Hereあなたは良い文書を見つけることができます。

8

loadは、データを直接DOMに注入します。この動作が必要ない場合は、getを使用してください。

-1

は、レビューのためにjQueryコードを調べるだけで済みます。 とにかくすべてのコールが同じ方法に達するが、アルテムの答え@必要

15

に応じて、異なる方法で応答しなければならないがloadgetより汎用的な機能であるという事実が欠落しているようです。 jQuery API docsによると、データに応じてロードにはgetまたはpostが使用されます。ここに引用:

要求メソッド

データを対象として提供される場合にPOSTメソッドが使用されます。それ以外の場合はGETとみなされます。

開発者が&様々な中間膨大なデータを扱うことを心配する必要はありませんようにDOMに挿入し、サーバ&から部分HTMLコンテンツを取得する目的で、loadは、get方法よりも良い方法ですコンテンツを挿入する前にロード関数が&を取得する前に実行するステップ。例えば

、ページの一部のコンテンツをロードする必要がある場合、あなたは次の式を使用できます。 $('#result').load('ajax/test.html #container');

をこれは、Ajax/test.htmlというのコンテンツを取得したが、その後jQueryが返さを解析し、文書でIDがcontainerの要素を検索します。この要素は、内容とともに、IDがresultの要素に挿入され、取得された文書の残りの部分は破棄されます。心に留めておくべき

ことの一つは、あなただけの代わりに、リクエストパラメータの直列化形式を取得するには$.paramメソッドを使用して、データパラメータ&にオブジェクトを提供GET要求回避を必要とするとき、ということです。

+0

むしろ、データパラメータを使用して構造とデータを分離しておくことをお勧めします。単純なクエリでは文字列連結( 'id = '+ id')を使用し、より複雑なものについてはオブジェクトとparamメソッド(' $ .param(object) 'または' $ .param({id:id、foo:bar }) ') – Deebster

+0

@Deebster私は単純な場合を想定しています。複雑なシナリオでは、$ .paramが優れていると私は理解しています。私は答えを編集しました。ありがとう。 – Sujay