问题:现在需要当前文件只能被打开一次,如果出现第二次,则将之前的界面关闭。
1.后台:在请求MVC下面,页面打开请求下,编写注入application用文件ID作为属性的参数
int stri = 0;
if (fileid == "")
Response.End();
if (HttpContext.Application[fileid] == null)
{
HttpContext.Application[fileid] = 1;
}
else
{
stri = int.Parse(HttpContext.Application[fileid].ToString());
HttpContext.Application[fileid] = stri + 1;
}
HttpContext.Application.Add("fileid", HttpContext.Application[fileid]);
在编写一个get请求返回application中的参数的值
[HttpGet]
public ActionResult GetCount(string fileid)
{
string count = HttpContext.Application[fileid].ToString();
var jsonData = new
{
count = count
};
return Success(jsonData);
}
2.前台:页面获取后台application中文件ID的打开次数,定时获取比对当前的次数和打开的次数,如果变大,则关闭当前页面
getfilecount(fileid);
setInterval(function () { readflag(); }, 2000);
//定时任务
function readflag() {
var new_filecount = httpGet(top.$.rootUrl + '/LR_CodeDemo/Weboffice/GetCount?fileid=' + fileid).data.count;
if (parseInt(new_filecount) > parseInt(filecount)) {
WebOffice.Close();
window.opener = null; window.open('', '_self', ''); window.close();
} else {
//alert(new_filecount)
}
}
//获取当前文件打开次数
function getfilecount(fileid) {
filecount = httpGet(top.$.rootUrl + '/LR_CodeDemo/Weboffice/GetCount?fileid=' + fileid).data.count;
//alert(filecount);
}