根据用户窗口大小呈现不同的部分

时间:2013-05-21 04:03:25

标签: ruby-on-rails

我想测试用户的浏览器window.width是否> = 800px 如果是这样我想渲染部分A,否则如果window.width> = 800px。

我没什么经验,请解释我的实施选择: 我期待页面上的javascript方法或jQuery。

我试过了

http://scottwb.com/blog/2012/02/23/a-better-way-to-add-mobile-pages-to-a-rails-site/

但 1.它对我不起作用。 2.即使它确实如此,我预计它将基于使用的设备,而不是像素数。

提前谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用Ahoy。 current_visit方法包含以下信息。

  

当有人访问您的网站时,Ahoy创建了很多访问   有用的信息。

     

流量来源 - 引荐来源,引荐域名,着陆页,搜索
  关键字位置 - 国家,地区和城市
  技术 - 浏览器,操作系统,   和设备类型
  utm参数 - 来源,媒介,期限,内容,   运动

答案 1 :(得分:1)

请求不会包含有关屏幕大小的数据,因此在常识中,服务器无法知道屏幕宽度和服务响应的内容,正如PinnyM在评论中也提到的那样。

一般做法是使用User Agent从服务器检测移动设备。用户代理是请求的一部分。它不是100%准确,但在大多数情况下,你仍然可以依赖它。

但是,您的问题仍有解决方案 - 根据屏幕尺寸提供服务页面。

解决方法是首先使用Javascript检测屏幕大小,然后使用JS删除cookie。服务器能够读取cookie并决定要呈现的模板。

基本仓库在这里:https://github.com/mattstauffer/Simple-RESS它适用于PHP,但您可以从源代码中获取想法。

还有Rails实现:https://github.com/matthewrobertson/ress和简介:http://matthewrobertson.org/blog/2013/02/15/introducing-ress/

我的观点:我不喜欢这个解决方案,尽管它是可行的。许多工作要做和许多事情要照顾。我宁愿用户代理检测用户。

答案 2 :(得分:0)

听起来像使用响应式前端框架可能需要关注。我是基金会的忠实粉丝,使用Rails应用程序非常容易。新版基金会今天刚推出!看看:http://foundation5.zurb.com/