jquery load 方法是不是提供与 Rails replace_html 方法等效的 ajax 功能?
Posted
技术标签:
【中文标题】jquery load 方法是不是提供与 Rails replace_html 方法等效的 ajax 功能?【英文标题】:Does the jquery load method provide ajax functionality equivalent to the Rails replace_html method?jquery load 方法是否提供与 Rails replace_html 方法等效的 ajax 功能? 【发布时间】:2010-10-26 13:06:34 【问题描述】:jquery load method 从远程文件加载 html 并将其注入 DOM。例如,要将 feeds.html 文件加载到带有提要 ID 的 div 中,您可以这样做:
$("#feeds").load("feeds.html");
这是使用 Rails replace_html 方法调用部分的替代方法,还是功能略有不同?
page.replace_html 'feeds', :partial => 'main/feeds',
:locals => :feed => @feed_data
[编辑]:正如 Craig Stuntz 所指出的,replace_html 返回 javascript 而不是 HTML - 这有什么优点/缺点?这是否只是意味着您返回的片段具有更多功能,就像使用 Javascript 的网页比常规 HTML 页面更强大一样?还是有其他原因返回 Javascript 而不是 HTML?
【问题讨论】:
【参考方案1】:最终结果大致相同,但它们的工作方式截然不同。 load 方法意味着你的服务器返回一个 HTML 片段,然后 jQuery 将它插入到页面中。 replace_html 方法意味着您的服务器正在返回 JavaScript 而不是 HTML,并且执行此 JavaScript 以将 HTML 片段插入页面。所以最终生成的 HTML 是一样的,但是客户端和服务端的流量差别很大。
【讨论】:
返回 Javascript 而不是 HTML 的优点/缺点是什么?这是否只是意味着您返回的片段具有更多功能,就像使用 Javascript 的网页比常规 HTML 页面更强大一样?还是有其他原因返回 Javascript 而不是 HTML? 我认为这真的取决于您是否关心通过网络发送的内容。如果获取您的 URI 的唯一客户端是您自己的 Rails 应用程序,那么它可能根本不重要。另一方面,如果其他客户端可能会获取您的 URI,可能是使用不是浏览器的客户端,那么这可能很重要。这真的取决于你在做什么。 您的意思是因为某些客户端无法处理 Javascript,但很可能能够处理 HTML?我认为 HTML 和 JS 或多或少是技术上的兄弟姐妹,因此任何可以处理其中一个的客户端都更有可能处理另一个? 一些客户端选择不处理 JavaScript,因为它可能是一个安全漏洞。例如,Adobe Reader 和 Apple QuickTime 都因 JavaScript 处理而存在严重的安全问题。以上是关于jquery load 方法是不是提供与 Rails replace_html 方法等效的 ajax 功能?的主要内容,如果未能解决你的问题,请参考以下文章
可以使用 jQuery.load() 函数加载 ASCX 吗?