当前位置: 首页 > 面试题库 >

如何在Rails中异步加载部分页面

索梓
2023-03-14
问题内容

在Rails / jquery应用程序上创建ruby时,页面的一部分很耗时。

我想更改页面的加载方式,以便大部分页面立即加载,并为占时的部分预留一个占位符以异步加载,并在完成时将其插入到带有ajax / jquery的页面中。

我现在所拥有的(简体):

app / views / sample / show.html.erb:

<div id="theResult">
    <%= render :partial => 'calculate', :object => @org) %>
</div>

而Partial将使用@org的某些部分来生成一些内容(点击另一个外部REST服务)。

app / views / sample / _calculate.html.erb

<%
    # code to take org and turn it into content
%>
<!--...html to display results here -->

我意识到这很可能违反了正确的MVC架构规则,因为我的部分似乎逻辑太多,并且也希望对其进行清理…

因此,我想我有两个问题:(1)如何使它正常工作;(2)我应该如何清理它以遵循良好的ruby / rails / mvc做法?


问题答案:

首先在主要回应中放置一个空的占位符div

<div id="pink-dancing-elephants"></div>

然后在页面上添加一些jQuery

$.ajax({
    url: "/elephants/dancing",
    cache: false,
    success: function(html){
      $("#pink-dancing-elephants").append(html);
    }
});

并执行对/ elephants / dancing / pink的响应,以返回要填充div的HTML
blob。在AJAX请求调用的操作中,您将需要使用:layout => false进行渲染,以防止返回的HTML Blob包含整个框架。例如

# elephants_controller.rb
def dancing
  @elephants = #whatever
  render :layout => false
end

这将在views / elephants / dancing.html.erb中呈现该模板。



 类似资料:
  • 问题内容: 我想在Rails应用程序的“新”视图中每3秒重新加载部分内容。 我有这个 如何每3秒重新加载一次此部分内容?我是否必须为此使用兼容的JavaScript?如何通过ujs实现呢? 问题答案: 将部分放在div中 您可以通过使用像这样的jQuery来做到这一点 现在刷新控制器动作中的部分内容以加载新内容 它肯定会工作.........

  • 问题内容: 我有一个表单,当我单击“提交”时,应该更新同一页面上的部分文档…当我将其放置在此处时: 它按照应有的方式运行,在需要时显示问候。但是当我进入这个… 它根本不做任何事情。我究竟做错了什么? 问题答案: 该请求可能不是Ajax调用。拨打Ajax电话。用户remote_form_for代替form_for或使用jquery.form向控制器发送ajax调用。如果您使用的是jquery,请执行

  • 问题内容: 我的问题是该网页未加载到webview中。 启动网络浏览器… 这是我的活动代码: 我在清单中添加了所需的权限: 问题答案: 由于这篇文章,我终于找到了解决方案。这是代码:

  • 本文向大家介绍vue.js 表格分页ajax 异步加载数据,包括了vue.js 表格分页ajax 异步加载数据的使用技巧和注意事项,需要的朋友参考一下 Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API。 分页一般和表格一起用,分页链接作为表格的一部分,将分页链接封装成一个独立的组件,然后作为子组件嵌入到表格组件中,这样比较合理。 1.注册一个组件 js 模板: H

  • 本文向大家介绍Javascript vue.js表格分页,ajax异步加载数据,包括了Javascript vue.js表格分页,ajax异步加载数据的使用技巧和注意事项,需要的朋友参考一下 分页一般和表格一起用,分页链接作为表格的一部分,将分页链接封装成一个独立的组件,然后作为子组件嵌入到表格组件中,这样比较合理。 效果: 代码: 1.注册一个组件 js 模板: HTML: 当点击分页链接的时候

  • 本文向大家介绍如何调试异步加载页面里包含的js文件,包括了如何调试异步加载页面里包含的js文件的使用技巧和注意事项,需要的朋友参考一下 最近在一个新的web项目中开发功能。这个项目的管理界面有一个特点,框架是固定的,不会刷新,每次点新的页面仅仅刷新一个div。div里面不是套的iframe,于是导致了一个问题,用浏览器无法调试异步加载页面里包含的js文件。简单的说就是在调试工具里面看不到异步加载页