2009-05-15 7 views
6

Le jquery load method charge du code HTML à partir d'un fichier distant et l'injecte dans le DOM. Par exemple, pour charger le fichier feeds.html dans le div avec l'ID de flux, vous feriez ceci:La méthode de chargement jquery fournit-elle une fonctionnalité ajax équivalente à la méthode Rails replace_html?

$("#feeds").load("feeds.html"); 

Est-ce une alternative à appeler un partiel avec les rails méthode replace_html ou est la fonctionnalité légèrement différente ?

page.replace_html 'feeds', :partial => 'main/feeds', 
    :locals => {:feed => @feed_data } 

[EDIT]: Comme Craig Stuntz souligne, retourne replace_html Javascript au lieu de HTML - quel est l'avantage/inconvénient de cela? Cela signifie-t-il simplement que le fragment que vous renvoyez a plus de capacités fonctionnelles de la même manière qu'une page Web qui utilise Javascript est plus puissante qu'une page HTML normale? Ou y a-t-il une autre raison pour retourner Javascript au lieu de HTML?

Répondre

6

Le résultat final est sensiblement le même, mais ils fonctionnent de manière très différente. La méthode de chargement signifie que votre serveur renvoie un fragment HTML et jQuery l'insère dans la page. La méthode replace_html signifie que votre serveur renvoie JavaScript au lieu de HTML, et que JavaScript est exécuté pour insérer un fragment HTML dans la page. Le code HTML final est donc le même, mais le trafic entre le client et le serveur est très différent.

+0

Quel est l'avantage/inconvénient de retourner Javascript au lieu de HTML? Cela signifie-t-il simplement que le fragment que vous renvoyez a plus de capacités fonctionnelles de la même manière qu'une page Web qui utilise Javascript est plus puissante qu'une page HTML normale? Ou y a-t-il une autre raison pour retourner Javascript au lieu de HTML? –

+3

Je pense que cela se résume à savoir si vous vous souciez de ce qui est envoyé sur le fil ou non. Si le seul client qui extrait votre URI est votre propre application Rails, cela peut ne pas avoir d'importance. Si, d'un autre côté, d'autres clients peuvent récupérer votre URI, peut-être avec un client qui n'est pas un navigateur, alors cela peut être très important. Cela dépend vraiment de ce que vous faites. –

+0

Voulez-vous dire parce que certains clients ne seront pas en mesure de traiter Javascript, mais seraient plus que probablement en mesure de traiter le code HTML? Je pensais que HTML et JS étaient des frères et sœurs plus ou moins technologiques, de sorte que tout client qui peut en traiter un peut plus que probablement traiter l'autre aussi? –

Questions connexes