WP Mobile Detector,W3 Total Cache,主页,Blackberry Viewport,自适应

时间:2012-07-27 20:54:38

标签: caching mobile blackberry wordpress-plugin wordpress-theming

我使用WP Mobile Detector和W3 Total Cache以及响应式布局(媒体查询),我有一些问题:

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

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

  3. 关闭缓存后,我会导航到实际网站以及网站的子页面 - 例如www.Site.com/about,www.Site.com/contact - 当我点击返回家中的链接(或将其输入地址栏)时,正在响应移动主题 - 即www.SITE.com/ - I& #39; m不再提供移动主题,只提供正常的桌面设备#39;主题。如果我回到子页面,我会再次看到移动主题。那时候发生了什么。

  4. 在Blackberry(例如)上查看时,如果我点击“查看完整网站”'链接(触发Javascript函数修改cookie)它没有显示完整的网站(即正常主题),它只是刷新并显示移动主题。但是,当在桌面上的Firefox中查看时(通过用户代理切换器),链接会修改cookie并切换回正常的桌面主题。

  5. 的思考/问题

    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元数据主要用于Blackberry目的。正如我所说,除了主页问题外,缓存关闭看起来还不错。

    我应该说它在Firefox中运行良好,User Agent Switcher扩展设置为iPhone 3,而且我没有黑莓问题。

    WPMD通过设置cookie来工作。这似乎有效,否则我根本不会看到移动主题。

    Blackberry是否有Javscript功能的问题?从手机本身不容易看出 - 可能需要放入一个JS错误监视器(前几天我正在看一个)。

    谁认为移动设备会如此棘手!

    更新1

    这是自首次发布以来的几个星期,我很快将遵循Joshua和Frederick的建议卸载并重新安装[最新版本] W3TC,我会发布我的结果。

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

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

    上面的三行有效地执行相同的操作(稍微不同的实现,取决于您的需要),但我在使用每个浏览器的浏览器中取得了不同的成功 - Chrome使用了一个,Firefox另一个等等。不幸的是,我仍然可以没有让Blackberry浏览器通过Javascript执行正确的自动刷新。

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

    那么,那里发生了什么?当我们点击另一个链接时页面仍在加载,我们是否打断了某些内容?可能不是,因为cookie已经在页面的移动版本的先前请求中被设置和发送,例如," show-desktop-version = true"。如果我们点击F5或浏览器刷新'按钮(或者,实际上是指向任何其他页面的链接)然后我们会分别看到正确的移动版或桌面版。

    另一个有趣的事情:说我们的移动版本(使用桌面浏览器),我们正在查看site.com/mypage,在页面上是一个指向' View的链接完整网站' (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兼容性对我来说仍然是一个问题 - 将发布更新)。

2 个答案:

答案 0 :(得分:1)

我是WP Mobile Detector的开发者。

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

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

无论出于何种原因,这些问题似乎更适用于更新版本的W3 Total Cache。我需要与Frederick(W3 Total Cache的创建者)一起使用,并确保插件能够很好地协同工作。

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

答案 1 :(得分:0)

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

可以禁用或使用用户代理组将访问者重定向到其他页面或主题。下一版本还在设置用户代理组时不再需要cookie。未来版本还将允许cookie用于唯一缓存用户请求。