jquery load方法是否提供与Rails replace_html方法等效的ajax功能?

时间:2009-05-15 15:38:02

标签: jquery ruby-on-rails ajax dom

jquery load method从远程文件加载HTML并将其注入DOM。例如,要将feeds.html文件加载到具有Feed标识的div中,您可以执行以下操作:

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

这是使用Rails replace_html方法调用partial的替代方法,还是功能略有不同?

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

[编辑]:正如Craig Stuntz所指出的,replace_html返回Javascript而不是HTML - 这有什么优势/劣势?它只是意味着您返回的片段具有更多功能,就像使用Javascript的网页比常规HTML页面更强大一样吗?或者还有其他原因可以返回Javascript而不是HTML吗?

1 个答案:

答案 0 :(得分:6)

最终结果大致相同,但它们以非常不同的方式工作。 load方法意味着您的服务器返回一个HTML片段,jQuery将其插入到页面中。 replace_html方法意味着您的服务器返回JavaScript而不是HTML,并且执行此JavaScript以将HTML片段插入到页面中。因此最终生成的HTML是相同的,但客户端和服务器之间的流量是非常不同的。