私は、ほぼ完璧に動作する非常に単純な HTML5 iPhone Web アプリケーションを持っています。問題は 1 つだけです。起動イメージとアプリのホーム画面の間に、約 1 秒間、完全に白い画面が表示されます (ちらつき)。
[ホーム画面に追加] ボタンを使用して、Web から携帯電話にアプリをダウンロードしています。JavaScript ファイル ( functions.js
) とスタイルシートはどちらも非常に小さなファイルです。
誰かがこの問題を抱えていますか?回避/修正する方法はありますか?
index.html
<!doctype html>
<html manifest="demo.manifest">
<head>
<meta charset="UTF-8">
<title>HTML5 Application</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="apple-touch-icon-precomposed" href="Icon@2x.png" />
<link rel="apple-touch-startup-image" href="Default@2x.png" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="user-scalable=no, width=device-width" />
</head>
<body>
<div id="wrapper">...</div>
</body>
<script type="text/javascript" src="function.js"></script>
</html>
デモ.マニフェスト
CACHE MANIFEST
index.html
Default@2x.png
functions.js
style.css
.htaccess
AddType text/cache-manifest .manifest
編集#1:さらに調査を行ったところ、この回答にたどり着きました:
HTML のプログレッシブな性質により、レンダリング中に画面やその他のアーティファクトをクリアすることは、HTML レンダリングの一般的な問題です。コンセプトは、ブラウザはできるだけ早く、頻繁に描画し、スタイル/スクリプト/コンテンツが利用可能になったときにレンダリングする必要があるというものです。一部のコンテンツまたはスクリプトが使用可能になるまで、すべてのレンダリングが遅延するという問題がマークアップにある可能性があります。これは、次の場合に発生する可能性があります。
- 画像のサイズに基づく動的な高さがありますが、マークアップまたは CSS で画像のサイズを設定していません。
- あなたのレイアウトはテーブルに基づいており、CSS で「table-layout:fixed」を使用していません。
- HTML は document.write() でインライン スクリプトを使用します。
- コンテンツを表示/変更するある種の onLoad() 関数があります。
- 外部スタイルシートにリンクします。
- キャッシュできない外部コンテンツを使用しているか、キャッシュを無効にしています。
- 404 を返す、またはオフラインで利用できない外部コンテンツを使用しています。
この回答のすべての提案に従いましたが、Web アプリから白いちらつきが取り除かれません。この問題を回避するためのハックはありますか?
編集#2:Javascriptを使用せず、スタイルシートのみを使用してみました:
body { background-color: black }
しかし、まだ白いちらつきがあります。これは、このようなすべての Web アプリケーションの問題であるように思われるため、私の質問は次のとおりです。この問題を回避するためのハックはありますか?