gpt4 book ai didi

javascript - Jquery Mobile - 每次在空白/白色屏幕中刷新结果

转载 作者:行者123 更新时间:2023-11-28 08:18:38 24 4
gpt4 key购买 nike

所以,我对 JQuery Mobile 还很陌生。我的网站基本上可以正常工作,但我遇到了一个奇怪的错误,它只是很少地抬起它丑陋的头,而且我似乎无法对其产生任何牵引力。这个bug主要出现在我使用iOS 7 Safari浏览器时。我只有 iPhone 5,所以无法在其他版本的 iOS 上进行测试。

问题如下:

使用 JQuery mobile 浏览网站几乎一直都没有问题。然而,使用手动浏览器刷新和后退按钮的奇怪组合(无法确定确切的组合)我会遇到一个无法加载的页面,并且每次刷新或返回时只会出现白屏。重新加载该页面的唯一方法是清除我的浏览器历史记录或手动终止 safari。因此,查看我的 Web 服务器终端输出,日志显示它正在渲染 *.mobile.erb 文件,但没有检索到任何 Assets 。

忘记提及我正在使用的具体内容。我将 Ruby on Rails 4 与 Ruby 2 结合使用,并将 jquery 1.10.2 与 jquery mobile 1.4.2 结合使用。我很乐意发布您认为有助于回答这个问题的任何代码,但说实话我不知道从哪里开始。我只在 Linux Chrome 浏览器上重现过这个问题一次,但无法再次重现。我可以在 iOS 7 的 Safari 上快速重现它。有人见过或听说过与此类似的问题吗?任何形式的指导都会有所帮助,以便我可以继续调查。我在研究这个问题时确实碰壁了。

以下是当页面正确呈现时我的网络服务器终端的输出:

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)

请注意,“Started Get”语句永远不会出现。几乎就像资源都被缓存了,不需要重新加载。

最佳答案

看来我的预感是正确的。由于某种原因,某些页面被缓存并且资源永远不会被检索,我想在 jquery 移动世界中,如果发生这种情况,您会得到一个空白的白屏。因此,我向 application_controller.rb 添加了一些代码以完全防止缓存。我从这个链接得到这个:How to prevent browser page caching in Rails

这是代码。

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

关于javascript - Jquery Mobile - 每次在空白/白色屏幕中刷新结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23279024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com