Javascript Jquery Mobile-每次刷新都会产生一个空白/白色屏幕
所以,我对JQuery Mobile还很陌生。我的网站基本上都在运行,但我碰到了一个奇怪的错误,它只稍微抬起丑陋的头,我似乎无法在上面获得任何牵引力。这个bug主要出现在我使用iOS 7 Safari浏览器时。我只有iPhone5,因此无法在其他版本的iOS上进行测试 问题如下: 使用jquerymobile浏览网站几乎一直都很好。然而,使用手动浏览器刷新和后退按钮的奇怪组合(无法确定确切的组合),我会点击一个无法加载的页面,并且每次刷新或返回时只会看到一个白色屏幕。重新加载该页面的唯一方法是清除我的浏览器历史记录或手动杀死safari。因此,查看我的web服务器终端输出,日志显示它正在呈现*.mobile.erb文件,但没有检索到任何资产 忘了提到我到底在用什么。我将RubyonRails4与Ruby2一起使用,将jQuery1.10.2与jQueryMobile 1.4.2一起使用。我很乐意发布任何你认为有助于回答这个问题的代码,但我真的不知道从哪里开始。我只在LinuxChrome浏览器上对这个问题进行了一次修改,但没能再做一次。我可以在iOS 7的Safari上快速重新编程。有没有人见过或听说过类似的问题?任何形式的指导都会有帮助,这样我可以继续调查。我在研究这件事上确实遇到了麻烦 以下是正确呈现页面时,my webserver终端输出的外观:Javascript Jquery Mobile-每次刷新都会产生一个空白/白色屏幕,javascript,jquery,ruby-on-rails,jquery-mobile,Javascript,Jquery,Ruby On Rails,Jquery Mobile,所以,我对JQuery Mobile还很陌生。我的网站基本上都在运行,但我碰到了一个奇怪的错误,它只稍微抬起丑陋的头,我似乎无法在上面获得任何牵引力。这个bug主要出现在我使用iOS 7 Safari浏览器时。我只有iPhone5,因此无法在其他版本的iOS上进行测试 问题如下: 使用jquerymobile浏览网站几乎一直都很好。然而,使用手动浏览器刷新和后退按钮的奇怪组合(无法确定确切的组合),我会点击一个无法加载的页面,并且每次刷新或返回时只会看到一个白色屏幕。重新加载该页面的唯一方法是清
Processing by ReviewsController#new as HTML
Parameters: {"place_id"=>"90"}
User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 ORDER BY `users`.`id` ASC LIMIT 1
Place Load (0.2ms) SELECT `places`.* FROM `places` WHERE `places`.`slug` = '90' ORDER BY `places`.`id` ASC LIMIT 1
Place Load (0.2ms) SELECT `places`.* FROM `places` WHERE `places`.`id` = 90 LIMIT 1
(0.1ms) SELECT COUNT(*) FROM `reviews` WHERE `reviews`.`user_id` = 2 AND `reviews`.`place_id` = 90
Rendered layouts/_header.mobile.erb (1.5ms)
Rendered layouts/_flash_message.mobile.erb (0.1ms)
Rendered shared/_error_messages.mobile.erb (0.0ms)
Rendered reviews/_form.mobile.erb (3.5ms)
Rendered reviews/new.mobile.erb within layouts/application (9.5ms)
Completed 200 OK in 24ms (Views: 14.6ms | ActiveRecord: 0.7ms | Solr: 0.0ms)
Started GET "/assets/mobile/mobile.css" for 192.168.1.176 at 2014-04-24 13:17:28 -0700
Started GET "/assets/jquery.raty.min.js?body=1" for 192.168.1.176 at 2014-04-24 13:17:28 -0700
Started GET "/assets/mobile/places.mobile.js?body=1" for 192.168.1.176 at 2014-04-24 13:17:28 -0700
Started GET "/assets/joey.png" for 192.168.1.176 at 2014-04-24 13:17:28 -0700
Started GET "/assets/jquery.raty/star-off.png" for 192.168.1.176 at 2014-04-24 13:17:28 -0700
以下是每次刷新时出现白色屏幕时的情况:
Processing by ReviewsController#new as HTML
Parameters: {"place_id"=>"90"}
User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 ORDER BY `users`.`id` ASC LIMIT 1
Place Load (0.2ms) SELECT `places`.* FROM `places` WHERE `places`.`slug` = '90' ORDER BY `places`.`id` ASC LIMIT 1
Place Load (0.2ms) SELECT `places`.* FROM `places` WHERE `places`.`id` = 90 LIMIT 1
(0.2ms) SELECT COUNT(*) FROM `reviews` WHERE `reviews`.`user_id` = 2 AND `reviews`.`place_id` = 90
Rendered layouts/_header.mobile.erb (1.8ms)
Rendered layouts/_flash_message.mobile.erb (0.1ms)
Rendered shared/_error_messages.mobile.erb (0.1ms)
Rendered reviews/_form.mobile.erb (3.7ms)
Rendered reviews/new.mobile.erb within layouts/application (10.3ms)
Completed 200 OK in 26ms (Views: 15.8ms | ActiveRecord: 0.8ms | Solr: 0.0ms)
注意,“startedget”语句从未出现过。几乎所有的资产都是缓存的,不需要重新加载。所以我的直觉似乎是正确的。出于某种原因,某些页面会被缓存,资产永远不会被检索到,我猜在jquery移动世界中,如果发生这种情况,您会看到一个空白的白色屏幕。因此,我向应用程序_controller.rb添加了一些代码,以完全防止缓存。我从这个链接得到这个: 这是代码
before_filter :set_cache_buster
def set_cache_buster
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end