【问题标题】:WP Mobile Detector, W3 Total Cache, Home Page, Blackberry Viewport, ResponsiveWP Mobile Detector, W3 Total Cache, Home Page, Blackberry Viewport, Responsive
【发布时间】:2012-07-26 14:06:25
【问题描述】:

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

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

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

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

  4. 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


    【解决方案1】:

    我是 WP Mobile Detector 的开发者。

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

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

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

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

    【讨论】:

    • 您好 Joshua,感谢您的回复。我还没有时间听从你的建议,但我会在我这样做时发布我的结果。 (为我迟到的回复道歉。)
    【解决方案2】:

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

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

    【讨论】:

    • 您好 Frederick,感谢您的发帖。当我有时间时,我会尝试最新版本的 W3TC(与 Joshua Odmark 的建议相一致)。 (为我迟到的回复道歉。)
    猜你喜欢
    • 1970-01-01
    • 2013-03-14
    • 2020-07-30
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2016-10-13
    相关资源
    最近更新 更多