Heim  >  Artikel  >  Web-Frontend  >  So verhindern Sie, dass Benutzer andere Vorgänge auf der Webseite ausführen, während die Webseite files_jquery herunterlädt

So verhindern Sie, dass Benutzer andere Vorgänge auf der Webseite ausführen, während die Webseite files_jquery herunterlädt

WBOY
WBOYOriginal
2016-05-16 16:43:051581Durchsuche

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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn