1

我正在使用带有 W3 Total Cache 和响应式布局(媒体查询)的 WP Mobile Detector,但我遇到了一些问题:

  1. 当我在黑莓上查看本地站点(本地主机)时,它看起来不错;缩放/视口正确,媒体查询已正确触发等。但是,当我在黑莓上查看实时站点时,视口已缩小。在响应式布局的上下文中,我在本地看到两列,但在现场我看到所有六列(即黑莓认为它是一个完整的浏览器 - 很烦人!)。

  2. 我想我会停用 W3 Total Cache 以查看是否有任何效果:是的,确实如此。当缓存关闭时,视口/缩放很好,一切都很好。问题解决了?不完全的...

  3. 关闭缓存后,我导航到实时站点,当我单击链接时,当站点的子页面(例如 www.SITE.com/about、www.SITE.com/contact)响应移动主题时回到家(或在地址栏中输入) - 即 www.SITE.com/ - 我不再提供移动主题,只是普通的“桌面”主题。如果我返回子页面,我会再次看到移动主题。那是怎么回事。

  4. 当在黑莓上查看时(例如),如果我单击“查看完整站点”链接(触发 Javascript 函数来修改 cookie)它不会显示完整站点(即正常主题),它只是刷新并显示移动主题。但是,当在桌面上的 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 工作。这似乎有效,否则我根本不会看到移动主题。

黑莓的Javscript功能有问题吗?从手机本身不容易分辨 - 可能需要放入一个 JS 错误监视器(前几天我在看一个)。

谁会想到移动开发会如此棘手!

更新 1

从第一次发布到现在已经有几个星期了,我很快就会按照 Joshua 和 Frederick 的建议卸载并重新安装 W3TC [最新版本],然后我会发布我的结果。

我发现不同的浏览器(桌面和移动)对 javascript 重定向语句的处理方式不同。例如:

setTimeout(function(){window.location.reload();},10)
window.location.reload();
location.reload();

上面的三行代码有效地执行了相同的操作(实现方式略有不同,具体取决于您的需要),但我在使用每一个的浏览器中取得了不同的成功——Chrome 与一个,Firefox 另一个,等等。不幸的是,我仍然无法获得黑莓浏览器通过 Javascript 执行适当的自动刷新。

还有什么...所以,事实证明,使用台式 PC/浏览器在台式机和移动设备之间切换很有趣。假设我们在桌面版本,我们切换到页面的移动版本。到目前为止我们还可以,但随后我们切换回页面的桌面版本。仍然可以,但是如果我们快速单击桌面页面上的链接以转到另一个 [桌面] 页面,那么我们可能会发现自己正在查看移动版本而不是桌面版本。

那么,那里发生了什么?由于当我们单击另一个链接时页面仍在加载,我们是否中断了什么?可能不会,因为 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 兼容性对我来说仍然是一个问题 - 将发布更新)。

4

2 回答 2

1

我是 WP Mobile Detector 的开发者。

您描述的问题正是安装 W3 Total Cache 时发生的情况。无论出于何种原因,有时都需要停用和删除 W3 Total Cache。

即使禁用了 W3 Total Cache,我记得有两个客户报告了问题。一旦它被删除,它就解决了这个问题。然后他们重新上传了 W3 Total Cache,在您发布的链接上进行了更改,并且似乎没问题。

无论出于何种原因,这些问题似乎在 W3 Total Cache 的较新版本中更为普遍。我需要与 Frederick(W3 Total Cache 的创建者)取得联系,并确保插件可以很好地协同工作。

确保同时清除 BlackBerry 设备上的缓存。

于 2012-08-07T00:33:12.533 回答
0

在不评估插件的情况下,这里有一些事情需要考虑。首先,W3TC 尝试默认设置一个 cookie,以正确确定用于智能手机和不太智能手机的用户代理组的页面缓存;由于在响应式网页设计和渐进增强流行之前移动主题插件的流行,它为每个人保留了唯一的缓存。

用户代理组可以被禁用或用于将访问者重定向到另一个页面或主题。下一个版本还消除了设置用户代理组时对 cookie 的需求。未来的版本也将允许 cookie 用于唯一缓存用户请求。

于 2012-08-12T21:41:31.423 回答