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

pez*_*ser 6 ajax jquery dom ruby-on-rails

所述的jquery负载方法从远程文件加载HTML和它注入到DOM.例如,要将feeds.html文件加载到具有Feed标识的div中,您可以执行以下操作:

$("#feeds").load("feeds.html");
Run Code Online (Sandbox Code Playgroud)

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

page.replace_html 'feeds', :partial => 'main/feeds',
    :locals => {:feed =>  @feed_data }
Run Code Online (Sandbox Code Playgroud)

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

Cra*_*ntz 6

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

  • 我认为这真的取决于你是否关心通过电线发送的内容.如果唯一获取URI的客户端是您自己的Rails应用程序,那么它可能根本不重要.另一方面,如果其他客户端可能获取您的URI,可能使用不是浏览器的客户端,那么它可能很重要.这真的取决于你在做什么. (3认同)
  • 有些客户选择不处理JavaScript,因为它可能是一个安全漏洞.例如,Adobe Reader和Apple QuickTime都因JavaScript处理而出现严重的安全问题. (2认同)