Beim Herunterladen von Dateien von Webseiten sind die Dateien manchmal zu groß und das Generieren der Dateien dauert eine Weile. Um zu verhindern, dass Benutzer andere Vorgänge auf der Webseite ausführen, besteht eine Methode derzeit darin, die Webseite mit einem Div abzudecken und zu sperren.
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); }
Verwenden Sie die obige Funktion, um die Seite zu sperren, um mehrere Vorgänge zu verhindern, bis das Download-Feld erscheint, um den Sperrbildschirm aufzuheben.
Cookies serverseitig setzen (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");
Importieren Sie das Plug-in jquery.cookie.js auf der Clientseite (html, js), fügen Sie dieses Plug-in in die HTML-Datei ein und rufen Sie regelmäßig Cookies in der js-Datei ab
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 }
Das ist es.