2009-05-15 11 views
6

El jquery load method carga HTML desde un archivo remoto y lo inyecta en el DOM. Por ejemplo, para cargar el archivo feeds.html en el div con el ID de los alimentos, que podría hacer esto:¿El método de carga jquery proporciona la funcionalidad ajax equivalente al método Rails replace_html?

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

¿Es esta una alternativa a llamar a un parcial con el método replace_html rieles o la funcionalidad es ligeramente diferente ?

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

[EDIT]: Como Craig Stuntz señala, replace_html devuelve Javascript en lugar de HTML - ¿cuál es la ventaja/desventaja de esto? ¿Simplemente significa que el fragmento que devuelve tiene más capacidades funcionales de la misma manera que una página web que usa Javascript es más poderosa que una página HTML normal? ¿O hay alguna otra razón para devolver Javascript en lugar de HTML?

Respuesta

6

El resultado final es muy similar, pero funcionan de una manera muy diferente. El método de carga significa que su servidor devuelve un fragmento de HTML y jQuery lo inserta en la página. El método replace_html significa que su servidor devuelve JavaScript en lugar de HTML, y este JavaScript se ejecuta para insertar un fragmento de HTML en la página. Entonces, el HTML resultante final es el mismo, pero el tráfico entre el cliente y el servidor es muy diferente.

+0

¿Cuál es la ventaja/desventaja de devolver Javascript en lugar de HTML? ¿Simplemente significa que el fragmento que devuelve tiene más capacidades funcionales de la misma manera que una página web que usa Javascript es más poderosa que una página HTML normal? ¿O hay alguna otra razón para devolver Javascript en lugar de HTML? –

+3

Creo que realmente se trata de si te importa lo que se envía por cable o no. Si el único cliente que alguna vez obtiene su URI es su propia aplicación Rails, entonces podría no importar para nada. Si, por otro lado, otros clientes pueden obtener su URI, tal vez con un cliente que no es un navegador, entonces podría importar mucho. Realmente depende de lo que estás haciendo. –

+0

¿Quiere decir que algunos clientes no podrán procesar Javascript, pero es más que probable que puedan procesar HTML? Pensé que HTML y JS eran hermanos más o menos tecnológicos, de modo que cualquier cliente que pueda procesar uno también puede procesar el otro. –

Cuestiones relacionadas