私はjavascriptにあまり熟練していませんが、私は非常に単純なことをやっていると思っていました。Javascript:ちょうど表示する読み込みGIF
私はHTMLファイルを持っています。これは、ブラウザでのみ実行できます.WiFiや携帯電話にアクセスできないためです。私は必要なリソースを最小限に抑えるためにのみjavascriptを使用しています。
約6500レコードを検索して一致を返します。これはアンドロイド(1〜2秒)でうまくいきますが、iPad3(私がテストしなければならないIOSのみ)は約30秒かかっているので、「DIVを検索しています」を追加して実行中であることを示します。
私は、これを試してみるための簡単なテストであると思ったものを作成しました。私の検索メッセージには、スリープループと表示/非表示のdivがありました。
検索DIVが見られることはありません。なぜ、 進行メッセージが1秒間隔で表示されないのですが、スリープループが完了するとすぐにすべてが表示されます。
明らかに私はいくつかの内部プロセスを誤解しています。
<style>
#LoadingGIF { z-index: 100;
position: absolute;
top: 50%; left: 50%;
margin-top: -100px ; margin-left: -100px;
display: none; }
</style>
<title>tutSleep</title>
</head>
<body>
<h1>Sleep and Searching message test</h1>
<div id="process">
</div>
<div id="LoadingGIF">
Searching for your matches
</div>
<!-- <img id="LoadingGIF" src="Loading.gif" />
-->
<script type="text/javascript">
showResults();
function showResults() {
var p = document.getElementById('process');
p.innerHTML = "";
var g = document.getElementById('LoadingGIF');
g.style.display = "block";
for (var x=1;x<6;x++) {
sleep(1000); //sleep fo 1 second
p.innerHTML = p.innerHTML + getDateTime() + "<br>";
}
g.style.display = "none";
}
// Delay for a number of milliseconds
// This will be a big javascript text search of approximately 6,500 text strings of 100+ characters.
// It performs well on Android and
// this GIf not really needed but iPad 3 it can take up to 30 secs.
//
function sleep(delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
function getDateTime() {
var date = new Date();
var hour = date.getHours();
hour = (hour < 10 ? "0" : "") + hour;
var min = date.getMinutes();
min = (min < 10 ? "0" : "") + min;
var sec = date.getSeconds();
sec = (sec < 10 ? "0" : "") + sec;
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" : "") + month;
var day = date.getDate();
day = (day < 10 ? "0" : "") + day;
return year + "/" + month + "/" + day + "  " + hour + ":" + min + ":" + sec;
}
</script>
「約30秒かかる」状況を修正することを考えましたか? –
これは文字列の単純なjavascript配列であり、各配列エントリに対して1つまたは2つの単語に一致します。 Android(Galaxy S4以降のGalaxy)ではうまく動作するため、簡単にする方法はありません。合計HTMLファイルは2MBです。 – mcl