로드 중 일부로 많은 계산을 수행하는 웹 페이지가 있습니다.스크립트가 실행되는 동안 JavaScript 페이지 업데이트
최종 사용자가 지연을 예상 할 수 있도록 페이지가 "사고 중"인 동안 회 전자 막대를 표시하려고합니다.
내가 할 일은 회전하는 바퀴가 될 GIF 파일을 표시하고 출력물이 될 테이블을 숨기는 것입니다.
일단 기능이 시작되면 기능 업데이트가 완료 될 때까지 페이지 업데이트가 중단 된 것 같습니다. 따라서 최종 사용자는 "진행 중"섹션을 볼 수 없습니다.
나는 내 문제를 보여주기 위해 함께 넣어 샘플 코드는 다음과 같습니다
<!DOCTYPE html>
<html>
<body>
<script>
function show(id, value) {
document.getElementById(id).style.display = value ? 'block' : 'none';
}
function Processing(x)
{
if (x === true)
{
show('page', false);
show('loading', true);
}
else
{
show('page', true);
show('loading', false);
}
}
function MainProcess()
{
Processing(true) // Set to "Show processing..."
var start = new Date().getTime(); // Sleep a few seconds
for (var i = 0; i < 5; i++) {
if ((new Date().getTime() - start) < 3000) { i = 1 }
}
Processing(false) // Set to "Show Completed processing..."
}
window.onload = function() {
show('page', false);
show('loading', false);
};
</script>
<div id="loading">
<h1>Processing your request.</h1>
</div>
<div id="page">
<DIV class="body">
<h3>Done Processing your request.</h3>
</DIV>
</div>
<div id="buttons">
<button onclick="MainProcess();">Start Timer</button>
<button onclick="Processing(false);">Set to Completed</button>
<button onclick="Processing(true);">Set to Processing</button>
</body>
</html>
내가 이것을 실행
, 그것은 세 개의 버튼을 제공합니다."Start Timer"를 누르면 몇 초 동안 처리 된 다음 완료 표시가 나타납니다. 대신 단추가 색상을 변경하고 타이머가 완료 될 때까지 아무 작업도 수행하지 않으며 완료를 표시합니다.
(I 자바 스크립트에 새로운 오전하지만 몇 가지 다른 언어 인치 노련한 프로 내가 Visual Basic 또는 PowerShell에서 같이 할 수 호출의 "DoEvents"유형이 있습니까?)
그래서 앱이 작동 중임을 사용자에게 알리기 위해 앱의 전반적인 성능에 지연을 추가해야합니다. LOL - 감사합니다. 작동합니다. –