モバイルウェブサイトの開発に関するいくつかの結論

モバイルウェブサイトの開発に関するいくつかの結論

ウェブサイトのモバイル版には、少なくともいくつかの基本機能が必要です。

1. ページの適用性の問題:

モバイル端末は解像度や画面サイズが異なります。Webページの幅をコンピュータのデザインのように1003pxなどのピクセル値に制限し、フォントサイズに12pxまたは14pxを使用すると、異なる端末の効果は大きく異なります。そこで、ウェブページの幅を画面に合わせて調整するのが最善です。幸いなことに、W3CはHTMLを設計する際にこれを考慮してくれました。これはたった1つの文で実現できます。つまり、


コードをコピー
コードは次のとおりです。

<meta name="ビューポート" content="width=デバイス幅"/>

フォントの場合、単位として em または ex を使用できます。

2. バージョン生成の問題:

モバイル ページには、携帯電話ごとに異なるバージョンが用意されていることが多く、一般的には簡易版、標準版、3G 版、タッチ スクリーン版、スマートフォン版などがあります。ページ デザインの違いに加えて、ページ言語も異なります。簡易版は wap 1.0 wml スクリプトで記述されており、非常に汎用性が高く、多くの国内携帯電話がこの言語をサポートしていますが、この言語は非常に簡略化されています。標準バージョンでは、一般的にWAP 2.0テクノロジが使用され、対応するスクリプト言語はXHTML MP(XHTML Mobile Profile)です。この言語はXHTMLのサブセットであり、ほとんどのCSSをサポートしています。基本的にはコンピューターバージョンと同じですが、JSは一般的に使用できません。これは、これらの携帯電話がJSをサポートしていないためです。スマートフォン版については、現在のスマートフォンはすべてjsに対応しているため、このバージョンの制作ははるかに簡単です。ただし、ほとんどのスマートフォン(基本的にSymbianフォンを除く、Android、ios、wp7など)はHtml5に対応しているため、スマートフォン版はhtml5を使用して制作できます。

3. バージョン管理の問題:

この部分は解決が難しいかもしれません。携帯電話の最適なバージョンを賢く判断して、それにジャンプする方法は、次の側面から考えることができます。一方では、携帯電話のオペレーティングシステムを取得する方法があります。たとえば、AndroidまたはiOSの場合は、HTML5バージョンにジャンプできます。Windowsシステムの場合、コンピューターバージョンで電話モデルを取得することで、携帯電話のシステムを取得できることは間違いありません。現在の方法は、ブラウザのUA(ユーザーエージェント)を介して電話に関する情報を取得することです。より簡単な方法は、UAを介して電話のメーカーを直接判断することです。より多くの情報を取得するには、データベースが必要です。携帯電話のモデルによって UA 情報が異なるためです。世界には多くの携帯電話があり、そのようなデータベースを自分で作成するのは依然として困難です。ただし、誰かがすでにそのようなデータベースを作成しています。または、より便利な方法として、携帯電話に最適なバージョンを識別する関数ライブラリを作成しています。ここでは、Wurfl を使用することをお勧めします。一方、ページ上のスクリプトを使用して、ブラウザがjsとhtml5をサポートしているかどうかを判断できます。コードは次のとおりです。


コードをコピー
コードは次のとおりです。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<ヘッド>
<meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=utf-8" />
<meta name="ビューポート" content="width=デバイス幅"/>
<title>バージョン管理</title>
<script type="text/javascript">
window.onload = 関数(){
// jsがサポートされているかどうか確認する
try{//HTML5がサポートされているかどうかを確認する
ドキュメント。getElementById("c").getContext("2d");
document.location = 'HTML5をサポートするリンク';
}catch(e){//それ以外の場合はjsバージョンにジャンプします
document.location = 'サポート js バージョン';
}
};
</スクリプト>
</head>
<本文>
<キャンバスid='c'></キャンバス>
通常版
</本文>
</html>

モバイルクライアントかどうかを判断するためだけにバージョンを開発したい場合は、discuz からのコード引用があります。x2


コードをコピー
コードは次のとおりです。

<?php
関数 checkmobile() {
グローバル $_G;
$モバイル = 配列();
静的 $mobilebrowser_list = array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
「ucweb」、「windows ce」、「symbian」、「series」、「webos」、「sony」、「blackberry」、「dopod」、「nokia」、「samsung」、
「palmsource」、「xda」、「pieplus」、「meizu」、「midp」、「cldc」、「motorola」、「foma」、「docomo」、「up.browser」、
「up.link」、「blazer」、「helio」、「hosin」、「huawei」、「novarra」、「coolpad」、「webos」、「techfaith」、「palmsource」、
「アルカテル」、「アモイ」、「Kタッチ」、「ネクシアン」、「エリクソン」、「フィリップス」、「サジェム」、「ウェルコム」、「ブンジャルー」、「マウイ」、「スマートフォン」、
「iemobile」、「spice」、「bird」、「zte-」、「longcos」、「pantech」、「gionee」、「portalmmm」、「jig browser」、「hiptop」、
'benq'、'haier'、'^lct'、'320x320'、'240x320'、'176x220');
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
if(($v = dstrpos($useragent, $mobilebrowser_list, true))) {
$_G['モバイル'] = $v;
true を返します。
}
$brower = 配列('mozilla'、'chrome'、'safari'、'opera'、'm3gate'、'winwap'、'openwave'、'myop');
if(dstrpos($useragent, $brower)) は false を返します。
$_G['モバイル'] = '不明';
if($_GET['mobile'] === 'yes') {
true を返します。
} それ以外 {
false を返します。
}
}
関数 dstrpos($string, &$arr, $returnvalue = false) {
if(emptyempty($string)) は false を返します。
foreach((配列)$arrを$vとして) {
if(strpos($string, $v) !== false) {
$return = $returnvalue ? $v : true;
戻り値 $return;
}
}
false を返します。
}
var_dump(checkmobile()); //モバイル端末の場合はtrueを返し、そうでない場合はfalseを返す
?>

4. モバイル版のサイズの問題:

一般的に言えば、モバイル Web ページの簡易版と通常版については、できるだけ簡潔にし、できるだけ多くのコードを節約するように努めます。結局のところ、モバイル データ トラフィックは依然としてユーザーにとって非常に貴重です。例えば、要素に名前を付ける場合、ページ数が少ない場合は名前が短いほどよく、CSS は 1 行で記述するのが最適です。 CSS では、一部の要素は親クラスのスタイルを継承します。繰り返し定義する必要はなく、デフォルト値を有効活用してください。

5. ブラウザキャッシュ:

更新が速くない場合は、ブラウザのキャッシュを有効にするのが最適です。

<<:  MySQL ツリー構造テーブルの設計と最適化に関する簡単な説明

>>:  DockerにRocketMQをインストールするための実装手順

推薦する

mysqlはタイムゾーン関連の問題を解決します

序文: MySQL を使用すると、時間の表示が正しくない、タイムゾーンが GMT+8 ゾーンにない、...

Linux のソフトリンクとハードリンクの詳細な説明

目次1. ファイルとディレクトリの基本的な保存2. Inコマンドの紹介(1)lnコマンドの基本情報を...

Docker 階層化パッケージを使用して Spring Boot を設定する方法

Spring Boot プロジェクトでは、Docker コンテナ、jar、war の階層化パッケージ...

CentOS 6.2 に MySQL 5.7.28 をインストールするチュートリアル (mysql ノート)

1. 環境整備1.MySQLインストールパス: /usr/local 2. CentOS 6.2 ...

PSを使用して2分でxhtml+cssウェブサイトのホームページを作成します

xhtml+css のウェブサイト再構築、ウェブ標準などについては、記事が多すぎるので繰り返しません...

LinuxにMySQLをインストールするための詳細なチュートリアル

すべてのプラットフォーム用の MySQL ダウンロードは、MySQL ダウンロードから入手できます。...

Linux のスケジュールタスク Crontab コマンドの使用に関する詳細な説明と概要

crontab コマンドは、Unix および Linux で定期的な実行命令を設定するために使用され...

CSS3 カテゴリメニュー効果

CSS3 カテゴリ メニューの効果は次のとおりです。 html <html> <ヘ...

WeChatアプレットは左にスワイプしてリスト項目を削除する効果を実現

この記事では、WeChatミニプログラムの具体的なコードを共有し、左にスワイプしてリスト項目を削除す...

WeChatミニプログラムのすべてのページがログインされていることを確認する方法

目次現状解決さらなる解決策やっと現状WeChat ミニプログラムには、ホームページ、個人ページ、いく...

HTML減量 HTMLタグを合理化してWebページを作成する

HTML4 についてHTML (XHTML ではありません)、MIME タイプは text/html...

MySQLでJSONフィールドを操作する方法

MySQL 5.7.8 では json フィールドが導入されました。このタイプのフィールドは使用頻度...

MySQL の WriteSet 並列レプリケーションの簡単な分析

【歴史的背景】私は 3 年間 MySQL-DBA として働いてきましたが、MySQL が「基本的に利...

一般的なブラウザ互換性の問題(概要)

ブラウザの互換性とは、スタイルの互換性 (CSS)、インタラクションの互換性 (JavaScript...

mysql 解凍パッケージの基本インストールチュートリアル

新しいコンピューターに変更したので、すべての環境を新しいコンピューター上で設定する必要があります。ふ...