我不是很熟練的JavaScript,但我認爲我做了一件很簡單的事情。Javascript:只是不能得到一個加載GIF來顯示
我有一個HTML文件,它可以在瀏覽器中運行,因爲在使用中將無法訪問WiFi或手機。我只使用JavaScript來最小化所需資源。
它搜索約6500條記錄並返回匹配項。這工作正常在android(1到2秒),但iPad3(只有IOS我要測試),大約需要30秒,所以我想添加一個「搜索DIV」,以顯示它正在運行。
我創建了我認爲是一個簡單的測試來嘗試這個 - 睡眠循環和顯示/隱藏div我的搜索消息。
搜索DIV從未見過,我不明白,爲什麼在一秒鐘間隔內不顯示進度消息,而是在睡眠循環完成時一次性顯示。
我明顯誤解了一些內部過程。
<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數組,我對每個數組項匹配一個或兩個單詞。由於它在Android(Galaxy S4和更新的Galaxies)上運行良好,我不知道任何方法,使其更簡單。該HTML文件總共2MB。 – mcl