웹페이지에서 파일을 다운로드할 때 파일이 너무 커서 파일을 생성하는 데 시간이 오래 걸릴 때가 있습니다. 이때, 사용자가 웹 페이지에서 다른 작업을 수행하지 못하도록 하려면 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 }
그렇습니다.