所以到目前为止我只在Android浏览器上遇到过这个问题。基本上我的网站几乎一直运行良好(我还没有在 Dolphin、Opera 或 Skyfire 上看到问题)但偶尔当我从手机主屏幕上的书签重新打开 Android 浏览器时,我的网站会出现水平拉伸,所以现在我只看到左侧的前 2/3。好像浏览器在最小化时只是丢失了 CSS 或元信息。这是我的元标记,我在表格样式中使用了 100% 的宽度。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="keywords" content="Task, Tasks, Goal, Goals, Habit, Habits, Track, Tracking, Best Habit Tracker"/>
<meta name="description" content="Top Habit Tracker!"/>
<meta name="mobileoptimized" content="0"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
此问题似乎仅在大约 30 分钟后单击书签时才会发生。重新打开股票 Android 浏览器。然后,似乎浏览器从其缓存中获取页面,但仍然为 ajax 运行窗口 onload,所以我认为它使用浏览器缓存页面与(也许?)顶部来自 ajax 的 javascript DOM 操作的组合是什么Android股票浏览器唯一存在的问题,在视口之外打破了我的表格宽度。或者也许 DOM 更改与它无关。
如果手机关闭,然后打开,并且点击了书签,股票浏览器从服务器重新加载页面,那么我没有得到问题。如果浏览器被最小化,并且仅在 2 分钟后重新单击了书签,那么也没有问题,因为浏览器只是重新显示自己和最后一页,完全按照它离开时的样子,没有做任何事情。
我一直在考虑某种技巧,我可以在从浏览器缓存中抓取页面的情况下强制从服务器重新加载,或者我想我可以尝试关闭浏览器缓存,但我想知道这样做对图像、CSS、加载时间等的影响。权衡我的选择……欢迎提出想法。
更新:关闭浏览器缓存可能会降低此问题的发生率(不确定?)但绝对不能治愈它。我现在想我可能遇到了与这篇博文中描述的相同的问题:
http://www.gabrielweinberg.com/blog/2011/03/working-around-androids-screenwidth-bug.html
更新:好的,到目前为止,我没有尝试过在我的 Android 股票浏览器中阻止这个间歇性问题。我打算将我的应用程序的常规使用切换到 Dolphin 一段时间,看看该浏览器是否出现问题。到目前为止我尝试过的是:使用元标记来禁用浏览器缓存(我认为在某种程度上Android浏览器无论如何都会忽略这一点)......改变表格宽度(我可能会以不同的方式再次尝试)......使用此处在评论 14 中发布的解决方案(动态创建 CSS 链接):https ://code.google.com/p/android/issues/detail?id= 11961#c14 最后我尝试将日期时间刻度附加到 URL为了减轻缓存,这也没有奏效。
更多有用的信息在这里: http: //f055.tumblr.com/post/6364300769/viewport-bugs-in-android-browser