检测URL是否在浏览器中打开 - Rails项目

时间:2014-02-26 08:56:24

标签: ruby-on-rails url browser

在我的应用程序中,有一个自定义要求来检测URL是否在浏览器中打开(即它可能在另一个选项卡,另一个窗口等)。有没有办法检测相同的?

它可以采用rails方式或使用客户端脚本。

我不确定这是一个好问题。

1 个答案:

答案 0 :(得分:1)

我能做的唯一贡献就是如何运作:


<强>请

由于Rails works on requests,我建议“了解”某个网址是否“开放”的唯一方法是使用永久连接(WebSocketlong-polling

通过使用websocket或long-polling,您可以不断提醒您是谁在请求您的控制器操作,从而为您提供有关哪些操作的信息


<强>连接

如果你正在使用websocket或长轮询技术,你可以这样做:

#app/controllers/your_controller.rb
def your_action
    #can accept xhr requests 
    respond_to do |format|
        format.html
        format.js { render nothing #xhr request}
    end
end

#app/assets/application.js
if (!!window.EventSource) {
    var source = new EventSource(window.location);
}

source.addEventListener('message', function(e) {
   console.log(e.data);
}, false);

Good tutorial here

这将继续请求您使用SSE's的页面(主要使用长轮询),从而可以查看操作是否已打开

这是超级粗略的,但希望它会给你一些想法