开发模式下 Rails 3.2 的请求处理顺序
Order of request handlings with Rails 3.2 in development mode
我有一个页面,在异步加载动态内容时显示微调器动画(此处为 HAML):
#loading_spinner
#async_vote
:javascript
$(document).ready(function() {
$.ajax({
url: "/votes/voteables",
cache: false,
beforeSend: function(xhr){
$("#loading_spinner").show();
},
success: function(html){
$("#loading_spinner").hide();
$("#async_vote").html(html);
}
});
});
为了模拟慢速请求,我在 :voteables
-方法中设置了几秒钟的睡眠时间。
现在,问题是浏览器不显示#loading_spinner
元素的background-image
。
发生的情况是,尽管JavaScript代码应该在加载页面时执行,但它实际上在获取微调器的背景图像之前执行AJAX调用。因此,当控制器中的延迟为 3 秒时,图像会立即加载(因为请求不是并行处理的),执行 success
-回调并立即隐藏图像。
我正在使用 Rails 3.2 并使用 rails server
运行该应用程序。
任何建议如何在开发中解决此问题?这会成为生产中的问题吗?
我认为如果您将 ajax 请求包装在加载中而不是准备就绪,它会在下载图像之前不会执行,如下所示:
$(window).load(function(){
// ajax functionality goes here
});
相关文章:
- ajax请求的顺序总是不同的
- 如何在node+express中重新运行请求处理程序
- 使用异步模块的Express + Mongoose请求处理程序的更简洁的方法
- 控制 AJAX 请求的顺序
- 延迟的jquery ajax请求的顺序
- 开发模式下 Rails 3.2 的请求处理顺序
- 为延迟请求处理创建承诺链
- 网络工作者发布消息处理顺序
- 如何将多个请求处理函数与 Node.js Express 一起使用
- 取消 ajax 请求:处理程序是否仍可执行
- 多个 jquery ajax 请求 - 处理它的方法
- 如何按照请求的顺序处理 jquery ajax 请求
- NodeJS http请求处理程序
- Jquery事件处理顺序:首先单击ele:s本身或父级
- 为什么我要声明handle["/"]在请求处理对象在HTTP服务器与node.js
- 防止双重请求处理
- Angular, Promises, foreach在textarea,并保持处理顺序
- Javascript回调——为什么它们的处理顺序不同?
- 使用AngularJS'执行请求的顺序;s ng资源
- 从Express中的POST请求处理程序下载文件