>  기사  >  웹 프론트엔드  >  웹 페이지가 files_jquery를 다운로드하는 동안 사용자가 웹 페이지에서 다른 작업을 수행하는 것을 방지하는 방법

웹 페이지가 files_jquery를 다운로드하는 동안 사용자가 웹 페이지에서 다른 작업을 수행하는 것을 방지하는 방법

WBOY
WBOY원래의
2016-05-16 16:43:051581검색

웹페이지에서 파일을 다운로드할 때 파일이 너무 커서 파일을 생성하는 데 시간이 오래 걸릴 때가 있습니다. 이때, 사용자가 웹 페이지에서 다른 작업을 수행하지 못하도록 하려면 div를 사용하여 웹 페이지를 덮고 웹 페이지를 잠그는 방법도 있습니다.

function lockScreen() 
{ 
sWidth=$(window).width(); 
sHeight=$(window).height(); 
var bgObj=document.createElement("div"); 
bgObj.setAttribute('id','bgDiv'); 
bgObj.style.position="absolute"; 
bgObj.style.top="0"; 
bgObj.style.background="#CCCCCC"; 
bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75"; 
bgObj.style.opacity="0.6"; 
bgObj.style.left="0"; 
bgObj.style.width=sWidth + "px"; 
bgObj.style.height=sHeight + "px"; 
if(sWidth < 860) 
{ 
bgObj.style.width="860px"; 
} 
bgObj.style.zIndex = "10000"; 
document.body.appendChild(bgObj); 
}

잠금 화면을 취소하는 다운로드 상자가 나타날 때까지 여러 작업을 방지하려면 위 기능을 사용하여 페이지를 잠그세요.

서버 측(cgi)에서 쿠키 설정:

<pre name="code" class="cpp">char *configDownloadToken = "finishedDownloadFile"; 
printf("Content-Type: application/octet-stream\nContent-Length: %ld\n", s.st_size); 
printf( "Set-Cookie:configDownloadToken=%s; path=/; \r\n ",configDownloadToken); 
printf("Content-Disposition: attachment; filename=\"%s\"\n", strrchr(filename,'/') + 1); 
printf("Connection: close\n\n");

클라이언트 측(html, js)에서 jquery.cookie.js 플러그인을 가져오고, 이 플러그인을 html 파일에 포함하고, js 파일에서 정기적으로 쿠키를 얻습니다.

var configDownloadCheckTimer; 
$(document).ready(function () { 
configDownloadCheckTimer = window.setInterval(function() { 
var cookieValue = $.cookie('configDownloadToken'); 
if (cookieValue === "finishedDownloadFile") 
{ 
refreshPage(); 
finishDownload(); 
} 
}, 1000); 
}); 

function finishDownload() { 
window.clearInterval(configDownloadCheckTimer); 
$.removeCookie('configDownloadToken'); //clears this cookie value 
} 

그렇습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.