1

ウェブサイトのモバイルデバイスの検出に関してすでに投稿されているさまざまな関連する質問を確認しましたが、私の方法は私が見たものとは少し異なり、誰かがそれに関する問題を見ることができるかどうか知りたいと思いました。

私がしているのは...

  1. server.transfer();を実行するhttpmoduleがあります。ユーザー訪問の最初のリクエストで空白のhtmlページに移動します。

  2. この空白のhtmlページには、ビューポートの幅/高さおよびタッチ機能を検出するJavaScriptがあります。次に、jsはこの情報をクライアントCookieに保存し、(window.locationを介して)最初に要求されたページにリダイレクトします。

  3. httpmoduleが再度ヒットすると、クライアントCookieからビューポートとタッチスクリーンの詳細を読み取ります。タッチが使用可能な場合、またはビューポートの幅が480px未満の場合、httpmoduleは(Response.Redirect()を介して)モバイルバージョンのWebサイトにリダイレクトします。

これを行うことで遭遇する可能性のある障害はありますか?

このサイトのタブレットバージョンはモバイルと同じであることに注意する必要があります。そのため、タッチが利用可能な場合はこのバージョンにリダイレクトしたいと思います。

4

3 に答える 3

3
any issues with it
  1. 確かにSEOフレンドリーではありません。
  2. ユーザーがJavaScriptを有効にしていない場合、機能しません
  3. Cookie が保存されていない場合、または無効になっている場合、ちらつきがあります。
  4. サーバー転送では、投稿を行い、Cookie または JavaScript のいずれかが失敗すると、投稿データも失われます。

一般的には良いアイデアですが、最初のサーバー転送の前にこれを確認する必要があると思います. あなたの方法では、すべてのブラウザ情報で更新されたデータベースを維持することを避けることができます。それは良いと思いますが、実際にスムーズに動作するかどうかをテストし、最初の server-trasnfer の前にさらにテストを行う必要があります。

于 2012-06-06T13:37:42.180 に答える
2

私が見ることができる 2 つの問題: レイテンシとタッチ イベントの可用性です。

ラウンド トリップ時間は、モバイル ネットワークでは大幅に長くなります。空のページ リクエストの場合、3G では約 500 ミリ秒かかります。したがって、リクエスト - リダイレクト - リダイレクトでは、ユーザーが何かを見るまでに約 1 秒の余分な遅延が発生します。一部のコメンターが示唆しているように、ちらつきは見られないと思いますが、一瞬何も見えないだけで、前向きな経験には思えません.

タッチについて: すべてのモバイル デバイスがタッチ ベースではなく、(Windows Mobile 7) 一部のモバイル デバイスには ontouch* イベントがありません。これらは個別に追跡する必要があります。

ビューポートも滑りやすいものです。メタ タグを介してビューポートの幅を強制していない場合、1024px であると主張するため、多数のターゲット デバイスがビューポート テストで見落とされていることがわかります。

タッチ対応デバイス (iOS、Android など) はすべて CSS メディア クエリをサポートしているので、これはより良い方法ではないでしょうか?

Luke Wroblewski のような人々によって支持されている RESS (サーバー側コンポーネントを使用したレスポンシブ デザイン) アプローチを検討する価値があるかもしれません: http://www.lukew.com/ff/entry.asp?1392

于 2012-06-06T13:41:35.817 に答える
0

CSS ベースのメディア クエリを使用して、それに応じて Web サイトを並べ替えるようにしてください。その場で画面サイズを検出し、それに応じて css を変更できます。

http://webdesignerwall.com/tutorials/css3-media-queries

http://www.w3.org/TR/css3-mediaqueries/

于 2012-06-06T13:46:26.550 に答える