我试图找出如何实现这一目标。我想要做的是有一个javascript函数,显示一个'加载屏幕'给用户。我只想在重定向之前为一个控制器发生这种情况。那个控制器是这样的:
Foo控制器
def index
redirect_to some_path
end
我只是通过向整个应用程序添加javascript来实现它,但我不确定如何仅为一个控制器显示它。通常我会检查参数,但似乎重定向在javascript之前点击,所以我无法检查它。
对此有何见解?
答案 0 :(得分:0)
Rails重定向实际上是普通HTTP协议的一部分 - 浏览器不会加载任何数据。这就是为什么在重定向之前无法执行您要求的内容,而您最好的方法是将javascript内容加载到目标页面。
HTTP重定向就像这样(我简化了):
GET /some/path HTTP/1.1
=='我可以拥有此网页吗?'
HTTP/1.1 302 Redirect
Location: http://my.server.com/some/other/path
=='它在那边 - 再次询问'。
GET /some/other/path HTTP/1.1
HTTP/1.1 200 OK
data
如您所见,数据仅在重定向后发送。
建议的解决方案@ thedarklord47可能是您唯一的选择 - 创建一个"着陆页"这将使用Javascript加载所有资源(类似于SPA - 单页面应用程序 - 可能使用AJAX)而不是像常规网页那样加载资源。
网上有一些关于"感知表现的好文章"这可以为您提供更多的想法和信息。
祝你好运!