为了能够实现在每一个页面判断会员登录状态的功能,可以采用了页面时通过ajax传递参数通过后端返回的登录状态结果进行判断,这种方式实现的前提是登录状态在后端可以保持或者能够查询到并且不利用页面向后端发送特别参数。
html部分
<divid="state_content"></div>
jQuery(document).ready(function()
{
getUserData()
})
functiongetUserData()
{
varOption=
{
url:encodeURI('/Handler/AuthAccounts.ashx?action=getloginstate'),
type:"post",
dataType:'text',
cache:false,//设置为false将不会从浏览器缓存中加载请求信息。
async:true,//(默认:true),所有请求均为异步请求。发送同步请求,请将此选项设置为false。同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
timeout:150000,//设置请求超时时间(毫秒)。此设置将覆盖全局设置。
error:function()
{
},
success:function(data,textStatus)
{
if(data==null||data==undefined)
{
returnfalse
}
jsondata=eval('('+data+')')
if(jsondata.state=="success")
{
varweburl='<aclass="username">欢迎你,'+jsondata.message.split('|')[1]+'</a><aclass="go_out"onclick="ExitLoginState()">退出</a>'
$("#state_content").html(weburl)//内容
}
else
{
vartextList='<ahref="/Login/index.shtml"rel="externalnofollow"rel="externalnofollow">【登录】</a><ahref="/Register/index.shtml"rel="externalnofollow"rel="externalnofollow">【注册】</a>'
$("#state_content").html(textList)//内容
}
},
beforeSend:function()
{
}
}
jQuery.ajax(Option)
returnfalse
}
functionExitLoginState()
{
varOption=
{
url:encodeURI('/Handler/AuthAccounts.ashx?action=exitloginstate'),
type:"post",
dataType:'text',
cache:false,//设置为false将不会从浏览器缓存中加载请求信息。
async:true,//(默认:true),所有请求均为异步请求。发送同步请求,请将此选项设置为false。同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
timeout:150000,//设置请求超时时间(毫秒)。此设置将覆盖全局设置。
error:function()
{
},
success:function(data,textStatus)
{
if(data==null||data==undefined)
{
returnfalse
}
jsondata=eval('('+data+')')
if(jsondata.state=="success")
{
alert("已经退出")
vartextList='<ahref="/Login/index.shtml"rel="externalnofollow"rel="externalnofollow">【登录】</a><ahref="/Register/index.shtml"rel="externalnofollow"rel="externalnofollow">【注册】</a>'
$("#state_content").html(textList)//内容
}
},
beforeSend:function()
{
}
}
jQuery.ajax(Option)
returnfalse
}
扩展资料
js自动识别终端并跳转的缺点:
一个企业需要做两个网站,那以后又出来很多终端设备。
例如iwatch:网站维护的成本,服务器成本都成倍的增加,这个时候企业主最需要的是为网站做响应式开发,让网站具备在不同设备下自动排版以确保在移动设备下的友好访问。
切图网凭借长期的web前端开发经验,长期从事html5,css3技术开发,对网站响应有独到的见解和研究,并且在移动互联网时代的背景下推出已有网站永久的、不依赖第三方的网站跨屏幕适配服务。
第一种处理:静态页也是相对的,页面内完全可以写入jsp或者php代码,登录过的用户信息应该是存在session中,可从session取用户信息判断用户是否登录;
第二种处理:在页面用ajax请求服务端方法,然后在该方法中判断用户是否登录,结果返回给前端页面,前端就知道用户是否已经登录了
把数据库ID保存到<input type="hidden" id="id" value=<%=ID%>/>中value值里,JS里可以这样写:var id=document.getElementById("id").valueif(id == 0||id == null){
alert("没有用户登录")
}else{
alert("用户已登录")
}