网页下载文件期间如何防止用户对网页进行其他操作

做网页下载文件时,有时候文件过大,生成文件需要一段时间。这个时候要防止用户对网页进行其他操作,有种方法就是使用一个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)中设置cookie:

<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文件中定时获取cookie

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
} 

这样就可以了。

(0)

相关推荐

  • 网页下载文件期间如何防止用户对网页进行其他操作

    做网页下载文件时,有时候文件过大,生成文件需要一段时间.这个时候要防止用户对网页进行其他操作,有种方法就是使用一个div覆盖在网页上,将网页锁住. function lockScreen() { sWidth=$(window).width(); sHeight=$(window).height(); var bgObj=document.createElement("div"); bgObj.setAttribute('id','bgDiv'); bgObj.style.positi

  • 【Python】Python的urllib模块、urllib2模块批量进行网页下载文件

    由于需要从某个网页上下载一些PDF文件,但是需要下载的PDF文件有几百个,所以不可能用人工点击来下载.正好Python有相关的模块,所以写了个程序来进行PDF文件的下载,顺便熟悉了Python的urllib模块和ulrllib2模块. 1.问题描述 需要从http://www.cvpapers.com/cvpr2014.html上下载几百个论文的PDF文件,该网页如下图所示: 2.问题解决 通过结合Python的urllib模块和urllib2模块来实现自动下载.代码如下: test.py #!

  • safari下载文件自动加了html后缀问题

    如何下载文件? 方法一.直接通过nginx下载静态文件 如果文件是保存在服务器上面的,可以直接用nginx下载文件 比如说可以供用户下载pdf文件,那么我的nginx配置可以是这样子的: location ~ /document/(.*)\.pdf$ { root /home/nemo/myfile; try_files /$uri 404; } 按照上面的配置,当我请求 http://fbd.intelleeegooo.cc/document/test.pdf 的时候,我服务器上的位于 /ho

  • Django基于客户端下载文件实现方法

    方法一: 使用HttpResonse 下面方法从url获取file_path, 打开文件,读取文件,然后通过HttpResponse方法输出. import os from django.http import HttpResponse def file_download(request, file_path): # do something... with open(file_path) as f: c = f.read() return HttpResponse(c) 然而该方法有个问题,如

  • Linux使用curl访问网页和wget下载文件

    目录 一:curl(网页访问,文件传输工具) 1.安装 2.常用参数 3.使用示例 二:wget(用于文件下载,在安装软件时会经常用到.) 1.安装 2.常用参数 3.使用示例: 三:区别 1.下载文件 2.下载文件并重命名 3.断点续传 4.限速下载 5.显示响应头部信息 6.wget利器--打包下载网站 一:curl(网页访问,文件传输工具) curl可以下载,但是长项不在于下载,而在于模拟提交web数据,POST/GET请求,调试网页,等等.curl支持URL中加入变量,因此可以批量下载.

  • 在ASP.NET中下载文件的实现代码

    这是笔者常被问到的一个问题,如何通过ASP.NET来下载文件,这个问题可大可小,我们先从小的开始.当我们要让用户下载一个文件,最简单的方式是通过Response.Redirect指令: Response.Redirect("test.doc") 您可以把上面这行指令放在Button的Click事件当中,当用户点击按钮之后,网页就会被转址到该word档,造成下载的效果. 但是这样的下载有几个问题: 1. 无法下载不存在的文件:例如,我们若是想把程序动态(临时)产生的文字,当作一个文件下载

  • Ajax请求过程中下载文件在FireFox(火狐)浏览器下的兼容问题

    需求很简单,点击一个文件链接下载该文件,同时向后台发送请求.需求很常见,用户点击下载后通常要进行下载量的统计,统计的话可以利用 script标签 或者 img标签(图片ping) 的跨域能力,将它们的 src 属性指向统计地址,但是这次用了 ajax 进行统计,遂出现了这个问题. demo 代码如下: <a id="a" href="http://c758482.r82.cf2.rackcdn.com/Sublime Text 2.0.2 x64 Setup.exe&q

  • 使用JS代码实现点击按钮下载文件

    正文 有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法: 现在需要在页面上添加一个下载按钮,点击按钮下载文件. 题外话,这个下载图标是引用的 font-awesome 上面的.使用时,首先将 font-awesome 整个文件夹下载下来,利用bower或者是自己去官网上面下载都行. 将整个文件夹放在项目文件中之后,在页面上面引入css文件 <link href="libs/font-awesome-4.7.0/css/font

  • Django 实现下载文件功能的示例

    基于Django建立的网站,如果提供文件下载功能,最简单的方式莫过于将静态文件交给Nginx等处理,但有些时候,由于网站本身逻辑,需要通过Django提供下载功能,如页面数据导出功能(下载动态生成的文件).先检查用户权限再下载文件等.因此,有必要研究一下文件下载功能在Django中的实现. 最简单的文件下载功能的实现 将文件流放入HttpResponse对象即可,如: def file_download(request): # do something... with open('file_na

  • 【CLI】利用Curl下载文件实时进度条显示的实现

    前言 最近在捣鼓命令行下的编程,下载文件总是一个难熬的过程,如果有进度条就好很多了!!! 先上一个进度条的扩展包,还是不错的https://github.com/dariuszp/cli-progress-bar (本地下载) 效果图: 还是挺好看的! curl有什么用? 用php ,curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等.但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了

随机推荐