W3 Total Cache とレスポンシブ レイアウト (メディア クエリ) を備えた WP Mobile Detector を使用していますが、いくつかの問題があります。
Blackberry でローカル (ローカルホスト) でサイトを表示すると、見栄えがよくなります。ズーム/ビューポートは正しく、メディア クエリは正しくトリガーされます。ただし、Blackberry でライブ サイトを表示すると、ビューポートが縮小されます。レスポンシブ レイアウトのコンテキストでは、ローカルでは 2 つの列が表示されますが、ライブでは 6 つの列すべてが表示されます (つまり、Blackberry は完全なブラウザーであると認識しており、非常に迷惑です!)。
W3 Total Cache を非アクティブにして、それが何らかの効果をもたらしているかどうかを確認しようと考えました。はい、効果がありました。キャッシュがオフの場合、ビューポート/ズームは良好で、すべてが良好です。問題が解決しました?そうじゃない...
キャッシュをオフにしてライブ サイトに移動し、リンクをクリックすると、サイトのサブページ (www.SITE.com/about、www.SITE.com/contact など) がモバイル テーマで応答している間に、リンクをクリックします。ホームに戻る (またはアドレス バーに入力する) - 例: www.SITE.com/ - モバイル テーマが配信されなくなり、通常の「デスクトップ」テーマだけが配信されます。サブページに戻ると、モバイル テーマが再び表示されます。そこで何が起こっているのか。
(たとえば) Blackberry で表示しているときに、[サイト全体を表示] リンク (Cookie を変更する Javascript 関数をトリガーする) をクリックすると、サイト全体 (つまり、通常のテーマ) は表示されず、更新されて表示されるだけです。モバイルテーマ。ただし、デスクトップ上の Firefox で (ユーザー エージェント スイッチャーを介して) 表示すると、リンクは Cookie を変更し、通常のデスクトップ テーマに戻ります。
考え/質問
W3TC は WPMD (モバイル テーマは縮小された JS/CSS を提供します) で動作しますが、何かを正しく構成していない可能性があります。次の 2 つのリンクは非常に役に立ち、提案された変更を実装しました。 --- http://snipplr.com/view/47970/wp-mobile-detector--w3-total-cache-integration/ --- http: //journal.code4lib.org/articles/6223
これは [Blackberry HotSpot/インターネット ブラウザ] の既知の問題ですか? ビューポート データを示すために必要なメタ タグをドキュメント ヘッドに追加しました。私が理解している HandheldFriendly メタ データは、主に Blackberry 用です。先ほど言ったように、ホームページの問題を除いて、キャッシュをオフにしても問題ないようです。
User Agent Switcher 拡張機能を iPhone 3 に設定した Firefox で問題なく動作し、Blackberry の問題はまったくありません。
WPMD は、Cookie を設定することで機能します。これは機能しているように見えます。そうでなければ、モバイル テーマはまったく見られなかったでしょう。
Blackberry の JavaScript 機能に問題はありますか? 電話自体から判断するのは簡単ではありません - JS エラー モニターをドロップする必要があるかもしれません (私は先日 1 つを見ていました)。
モバイル開発がこんなに難しいと誰が思ったでしょう!
更新 1
最初の投稿から数週間が経ちましたが、すぐに Joshua と Frederick のアドバイスに従い、W3TC [の最新バージョン] をアンインストールしてから再インストールし、結果を投稿します。
さまざまなブラウザー (デスクトップとモバイルの両方) では、javascript リダイレクト ステートメントの扱いが異なることがわかりました。例えば:
setTimeout(function(){window.location.reload();},10)
window.location.reload();
location.reload();
上記の 3 行は同じアクションを効果的に実行します (必要に応じて実装がわずかに異なります) が、それぞれを使用するブラウザー間でさまざまな成功を収めました。 Javascript を介して適切な自動更新を実行するための Blackberry ブラウザー。
他には、デスクトップ PC/ブラウザーを使用してデスクトップとモバイルを切り替えることが興味深いことがわかりました。デスクトップ版を使用していて、モバイル版のページに切り替えたとしましょう。ここまでは問題ありませんが、デスクトップ バージョンのページに戻ります。それでも問題ありませんが、デスクトップ ページのリンクをすばやくクリックして別の [デスクトップ] ページに移動すると、デスクトップ バージョンではなくモバイル バージョンが表示されることがあります。
それで、そこで何が起こったのですか?別のリンクをクリックしたときにページがまだロードされていたので、何かを中断しましたか? おそらくそうではありません。Cookie は、ページのモバイル バージョンからの前の要求で設定されて送信されたものであり、たとえば「show-desktop-version = true」です。F5 キーまたはブラウザの [更新] ボタン (または、実際には他のページへのリンク) を押すと、正しいモバイル バージョンまたはデスクトップ バージョンが (それぞれ) 表示されます。
もう 1 つの興味深い点は、モバイル バージョン (デスクトップ ブラウザーを使用) を使用していて、site.com/mypage を見ているとします。そのページには「View Full Site」(VFS) へのリンクがあります。VFS を 1 回クリックすると更新されますが、モバイル バージョンがまだ表示されています。もう一度クリックします - 同じ結果です。何度も何度もクリックすると、今度は完全なサイトに切り替わりました。このサイクル/プロセスは 1 回発生し、その後しばらく発生しないように見え、その後再び発生します。
更新 2
モバイルとデスクトップのテーマの切り替えに関する問題については、「更新 1」の私のメモは無視してください。私のスイッチャーリンクの1つ(デスクトップテーマからモバイルへ)、例えば...
<a href="?dothemeswitch" onClick="funcSwitchToMobile()">View Mobile Site</a>
...クエリパラメータを使用していました(ご覧のとおり)。この手法を使用して、リンクが同じ/現在の URL を指しているため、モバイル ブラウザーが適切な更新を妨げているかどうかをテストしました。スイッチャー リンクは実際には次のようになっているはずです。
<a href="#" onClick="funcSwitchToMobile()">View Mobile Site</a>
...ハッシュのみを使用してリンクをクリック可能にし、Javascript 関数がその魔法 (Cookie の更新、ページのリロード) を実行できるようにします。
問題が解決しました。
(W3TC + WPMD の互換性はまだ私にとって問題です - 更新を投稿します)。