2010-07-02 5 views
0

J'ai lu sur le site Web jQuery que get() charge les données du serveur à l'aide d'une requête HTTP GET. Mais cette explication ne suffit pas, comme par l'exemple que je donne ci-dessous:Méthode jQuery get() - je ne sais pas ce qu'elle fait avec les paramètres qu'elle reçoit dans cet exemple

juste pour donner un peu de contexte pour ma question, quand nous attribuons la valeur de deux paramètres à une expoptions variables:

var expoptions = $.extend(defaults, options); 

le paramètre par défaut est un objet littéral de paires clé par défaut/valeur qui ne sont pas définies dans le paramètre options:

$.fn.explorerGrid = function(options) { 
var defaults = { 
    order: 'make', 
    page: 1, 
    id: 0, 
    per_page: 20, 
    url: "/honda", 
    additional: function(){return {ololo:'trololo'};}, 
}; 

le paramètre options est un objet littéral de paires clé/valeur transmis en tant que paramètre lorsque le explorerGrid() méthode est appelée:Nous parcourons ensuite les littéraux d'objet de notre objet Honda en assignant per_page (p. Ex., Par exemple). 20), l'ordre (par exemple, 'faire'), la page (par exemple 1) de nos expoptions objet à quelques variables globales:

return this.each(function() { 
var expobj = $(this); 
var params = { 
    per_page: expoptions.per_page, 
    order : expoptions.order, 
    page : expoptions.page, 
}; 

---- La partie que je ne comprends pas quand nous appelons ---- la méthode get(), nous passons dans certains arguments, l'un est expoptions.url (par exemple '/ honda'), params (qui contient un littéral d'objet de paires clé/valeur qui spécifient comment nous voulons peupler la table et il contient aussi un autre objet littéral à partir d'une méthode additional(), qui contient des paires clé/valeur de critères filtrés, tels que: 'Année: 2008', 'Make: Honda', puis nous appelons une fonction, qui semble être une fonction anonyme , en transmettant un paramètre appelé données dont je ne suis pas sûr d'où cela vient car, comme je l'ai dit, cette fonction ne semble pas être définie nulle part, puis elle appelle la méthode html() sur l'objet expobj, qui h est notre objet, comme Honda, et tire dans ce paramètre de données. Je ne suis pas sûr de ce que la méthode get() est supposée faire avec ces trois paramètres: expoptions.url, params, function (data). Si quelqu'un sait ce que la méthode get() est en train de faire avec ces paramètres, je vous en serais reconnaissant quelques explications:

jQuery.get(expoptions.url, 
params, 
function(data) 
{ 
    expobj.html(data); 


    expobj.find("tr th.sortable").click(function(){ 
     if($(this).hasClass('sortedasc')){ 
      expoptions.order = "-" + $(this).attr('id');} 

     if($(this).hasClass('sorteddesc')){ 
      expoptions.order = $(this).attr('id');} 

     if(!$(this).hasClass('sorteddesc') && !$(this).hasClass('sortedasc')) { 
      expoptions.order = $(this).attr('id');} 
     expoptions.find_page_for_resource = 0; 
     expobj.explorerGrid(expoptions); 
    }); 

    expobj.find("#gridpage").change(function(){ 
     expoptions.page = 1; 
     expoptions.per_page = $(this).val(); 
     expobj.explorerGrid(expoptions); 
    }); 

);

Merci pour toute réponse. simplement

Répondre

1

mettre, le troisième argument .get, la fonction anonyme qui commence par

function(data) 
{ 
    expobj.html(data); 

est appelé par le navigateur une fois la requête HTTP GET se termine, et il est appelé avec le corps de la réponse, d'où le paramètre data . Le indique le lieu d'obtention des données, tandis que le deuxième argument est utilisé pour construire la "chaîne de requête", le "? Foo = bar & this = that".

+0

Corps de réponse googlé. Tout ce que j'ai obtenu était une définition de Microsoft pour une propriété responseBody introduite dans IE7. Il est difficile de conceptualiser ce qu'est le corps de réponse. – JohnMerlino

+0

Juste pour confirmer, disons, nous envoyons l'URL 'honda.part' au serveur et le paramètre supplémentaire de la chaîne de requête? Year = 2008 & color = red, maintenant une fois cette requête http (l'URL et la chaîne de requête) envoyée au serveur, le script tel que PHP prend cette information, fait une requête sql, puis retourne les résultats dans les données du paramètre et la méthode html() jquery va convertir cette réponse en html? – JohnMerlino

+0

Est-ce que "data" est essentiellement le responseText qui contient les résultats de la requête mysql spécifiée dans la chaîne de requête envoyée au script du serveur? – JohnMerlino

0

Les 3 paramètres pris par .get() sont 1. utilisés pour l'URL que vous obtenez. 2. les paramètres que vous voulez envoyer à l'url. 3. la fonction que vous souhaitez exécuter lorsque la page que vous obtenez est terminée chargement

La fonction est transmise 3 paramètres, les données résultantes de votre appel le statut de texte de l'appel que vous avez effectué et l'objet de requête XMLHttpRequest, par exemple.function(data, textStatus, XMLHttpRequest);

La fonction que vous écrivez doit avoir data si vous renvoyez des données avec l'URL que vous appelez avec .get().

+0

Est-ce que "data" est essentiellement le responseText qui contient les résultats de la requête mysql spécifiée dans la chaîne de requête envoyée au script du serveur? – JohnMerlino

+0

Comme quelqu'un l'a dit, 'data' est le corps de la réponse (texte) de la page à laquelle vous envoyez la requête. – Nalum