【发布时间】:2012-07-26 14:06:25
【问题描述】:
我正在使用带有 W3 Total Cache 和响应式布局(媒体查询)的 WP Mobile Detector,但我遇到了一些问题:
当我在 Blackberry 上本地 (localhost) 查看站点时,它看起来不错;缩放/视口正确,媒体查询已正确触发等。但是,当我在黑莓上查看实时站点时,视口已缩小。在响应式布局的上下文中,我在本地看到两列,但在现场我看到所有六列(即黑莓认为它是一个完整的浏览器 - 很烦人!)。
我想我会停用 W3 Total Cache 以查看是否有任何效果:是的,确实如此。当缓存关闭时,视口/缩放很好,一切都很好。问题解决了?不完全...
在缓存关闭的情况下,我导航到实时站点以及站点的子页面 - 例如www.SITE.com/about、www.SITE.com/contact - 当我点击返回主页的链接(或在地址栏中输入)时,正在响应移动主题 - 即 www.SITE.com/ - 我'm 不再提供移动主题,只是普通的'桌面'主题。如果我返回子页面,我会再次看到移动主题。那是怎么回事。
1234563 ,它只是刷新并显示移动主题。但是,当在桌面上的 Firefox 中查看时(通过用户代理切换器),该链接确实会修改 cookie 并切换回正常的桌面主题。
想法/问题
W3TC 确实适用于 WPMD(移动主题提供缩小的 JS/CSS),但也许我没有正确配置某些东西。以下两个链接非常有用,我已经实施了建议的更改: --- http://snipplr.com/view/47970/wp-mobile-detector--w3-total-cache-integration/ --- http://journal.code4lib.org/articles/6223
这是一个已知的 [Blackberry HotSpot/Internet Browser] 问题吗?我在文档头中添加了必要的元标记来指示视口数据,我理解的 HandheldFriendly 元数据主要用于黑莓目的。正如我所说,除了主页问题之外,关闭缓存看起来没问题。
我应该说它在将用户代理切换器扩展设置为 iPhone 3 的 Firefox 中运行良好,而且我没有任何黑莓问题。
WPMD 通过设置 cookie 来工作。这似乎有效,否则我根本看不到移动主题。
Blackberry 的 Javscript 功能有问题吗?从手机本身不容易分辨 - 可能需要放入 JS 错误监视器(前几天我正在查看)。
谁能想到移动开发会如此棘手!
更新 1
距离第一次发布已经过去了几周,我很快就会按照 Joshua 和 Frederick 的建议卸载并重新安装 [最新版本的] W3TC,然后我会发布我的结果。
我发现不同的浏览器(桌面版和移动版)对待 javascript 重定向语句的方式不同。例如:
setTimeout(function(){window.location.reload();},10)
window.location.reload();
location.reload();
上面的三行代码有效地执行了相同的操作(实现方式略有不同,具体取决于您的需要),但我在使用每一个的浏览器中取得了不同的成功——Chrome 与一个,Firefox 另一个,等等。不幸的是,我仍然可以没有让黑莓浏览器通过 Javascript 执行正确的自动刷新。
还有什么...所以,使用台式电脑/浏览器在台式机和移动设备之间切换已被证明很有趣。假设我们在桌面版本,我们切换到页面的移动版本。到目前为止我们还可以,但随后我们切换回页面的桌面版本。仍然可以,但是如果我们快速单击桌面页面上的链接以转到另一个 [桌面] 页面,那么我们可能会发现自己正在查看移动版本而不是桌面版本。
那么,那里发生了什么?由于当我们单击另一个链接时页面仍在加载,我们是否中断了什么?大概不会,因为 cookie 会在先前的请求中从页面的移动版本设置并发送,例如“show-desktop-version = true”。如果我们确实点击了 F5 或浏览器的“刷新”按钮(或者实际上是指向任何其他页面的链接),那么我们确实会看到正确的移动版本或桌面版本(分别)。
另一件有趣的事:假设我们使用的是移动版本(使用桌面浏览器),我们正在查看 site.com/mypage,页面上有一个指向“查看完整站点”(VFS) 的链接。我们单击 VFS 一次,它会刷新,但我们仍然看到移动版本。所以我们再次点击——同样的结果。所以我们一次又一次地点击,一次又一次,然后——哦,好吧,这次它切换到了完整的站点。这个循环/过程似乎发生了一次,然后不是一段时间,然后再次发生。
更新 2
关于移动桌面主题切换问题,请忽略我在“更新1”中的说明。我的切换器链接之一(从桌面主题到移动),例如....
<a href="?dothemeswitch" onClick="funcSwitchToMobile()">View Mobile Site</a>
...正在使用查询参数(如您所见)。我曾使用此技术测试移动浏览器是否阻止正确刷新,因为链接指向相同/当前 URL。切换器链接实际上应该是这样的,
<a href="#" onClick="funcSwitchToMobile()">View Mobile Site</a>
...只需要一个哈希来允许链接可点击,同时允许 Javascript 函数发挥它的魔力(更新 cookie、重新加载页面)。
问题已解决。
(W3TC + WPMD 兼容性对我来说仍然是个问题 - 将发布更新)。
【问题讨论】:
标签: caching mobile blackberry wordpress wordpress-theming