2009-05-15 7 views
6

I jquery load method carichi HTML da un file remoto e lo immette nella Rep. Per esempio, per caricare il file feeds.html nel div con l'ID di feed, si esegue questa operazione:Il metodo di caricamento jquery fornisce una funzionalità jax equivalente al metodo replace_html di Rails?

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

È questo un'alternativa a chiamare un parziale il metodo replace_html Rails o è la funzionalità leggermente diversa ?

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

[EDIT]: Come Craig Stuntz sottolinea, replace_html restituisce Javascript invece di HTML - qual è il vantaggio/svantaggio di questo? Significa solo che il frammento restituito ha più funzionalità funzionali nello stesso modo in cui una pagina web che utilizza Javascript è più potente di una normale pagina HTML? O c'è qualche altra ragione per restituire Javascript invece di HTML?

risposta

6

Il risultato finale è più o meno lo stesso, ma funzionano in modo molto diverso. Il metodo di caricamento indica che il server restituisce un frammento HTML e jQuery lo inserisce nella pagina. Il metodo replace_html significa che il server sta restituendo JavaScript anziché HTML e questo JavaScript viene eseguito per inserire un frammento HTML nella pagina. L'HTML finale risultante è lo stesso, ma il traffico tra il client e il server è molto diverso.

+0

Qual è il vantaggio/svantaggio di ritorno Javascript invece di HTML? Significa solo che il frammento restituito ha più funzionalità funzionali nello stesso modo in cui una pagina web che utilizza Javascript è più potente di una normale pagina HTML? O c'è qualche altra ragione per restituire Javascript invece di HTML? –

+3

Penso che dipenda davvero dal fatto che ti interessi o meno ciò che viene inviato via cavo. Se l'unico cliente che recupera l'URI è la tua app Rails, potrebbe non avere alcuna importanza. Se, d'altro canto, altri client potrebbero recuperare il tuo URI, magari con un client che non è un browser, allora potrebbe essere molto importante. Dipende davvero da cosa stai facendo. –

+0

Vuoi dire perché alcuni clienti non saranno in grado di elaborare JavaScript ma sarebbe più che probabile essere in grado di elaborare HTML? Pensavo che HTML e JS fossero fratelli più o meno tecnologici in modo tale che qualsiasi cliente in grado di processarne uno potesse più che processare anche l'altro? –