jQuery基于ajax實(shí)現(xiàn)頁(yè)面加載后檢查用戶登錄狀態(tài)的方法
本文實(shí)例講述了jQuery基于ajax實(shí)現(xiàn)頁(yè)面加載后檢查用戶登錄狀態(tài)的方法。分享給大家供大家參考,具體如下:
擁有會(huì)員功能的網(wǎng)站,如果會(huì)員已經(jīng)登錄,那么要顯示相應(yīng)的登錄狀態(tài),而且這種顯示的需求是在網(wǎng)站的每個(gè)頁(yè)面都有的(目前國(guó)內(nèi)網(wǎng)站貌似都是這么做的,還沒(méi)有見(jiàn)過(guò)其他形式的狀態(tài)顯示方式),這樣,在打開(kāi)一個(gè)新的頁(yè)面時(shí)就要知道這個(gè)會(huì)員是否已經(jīng)登錄,需要判斷登錄的狀態(tài)。
1、解決方案。
為了能夠?qū)崿F(xiàn)在每一個(gè)頁(yè)面判斷會(huì)員登錄狀態(tài)的功能,我采用了頁(yè)面時(shí)通過(guò)ajax傳遞參數(shù)通過(guò)后端返回的登錄狀態(tài)結(jié)果進(jìn)行判斷,當(dāng)然,這種方式實(shí)現(xiàn)的前提是登錄狀態(tài)在后端可以保持或者能夠查詢到并且不利用頁(yè)面向后端發(fā)送特別參數(shù)。
2、代碼部分。
(1)html部分
<div id="state_content"></div>
(2)jquery部分
jQuery(document).ready(function () { getUserData(); }); function getUserData() { var Option = { url: encodeURI('/Handler/AuthAccounts.ashx?action=getloginstate'), type: "post", dataType: 'text', cache: false, //設(shè)置為 false 將不會(huì)從瀏覽器緩存中加載請(qǐng)求信息。 async: true, //(默認(rèn): true),所有請(qǐng)求均為異步請(qǐng)求。發(fā)送同步請(qǐng)求,請(qǐng)將此選項(xiàng)設(shè)置為 false。同步請(qǐng)求將鎖住瀏覽器,用戶其它操作必須等待請(qǐng)求完成才可以執(zhí)行。 timeout: 150000, //設(shè)置請(qǐng)求超時(shí)時(shí)間(毫秒)。此設(shè)置將覆蓋全局設(shè)置。 error: function () { }, success: function (data, textStatus) { if (data == null || data == undefined) { return false; } jsondata = eval('(' + data + ')'); if (jsondata.state == "success") { var weburl = '<a class="username">歡迎你,' + jsondata.message.split('|')[1] + '</a><a class="go_out" onclick="ExitLoginState()">退出</a>'; $("#state_content").html(weburl); //內(nèi)容 } else { var textList = '<a href="/Login/index.shtml" rel="external nofollow" rel="external nofollow" >【登錄】</a><a href="/Register/index.shtml" rel="external nofollow" rel="external nofollow" >【注冊(cè)】</a>'; $("#state_content").html(textList); //內(nèi)容 } }, beforeSend: function () { } }; jQuery.ajax(Option); return false; } function ExitLoginState() { var Option = { url: encodeURI('/Handler/AuthAccounts.ashx?action=exitloginstate'), type: "post", dataType: 'text', cache: false, //設(shè)置為 false 將不會(huì)從瀏覽器緩存中加載請(qǐng)求信息。 async: true, //(默認(rèn): true),所有請(qǐng)求均為異步請(qǐng)求。發(fā)送同步請(qǐng)求,請(qǐng)將此選項(xiàng)設(shè)置為 false。同步請(qǐng)求將鎖住瀏覽器,用戶其它操作必須等待請(qǐng)求完成才可以執(zhí)行。 timeout: 150000, //設(shè)置請(qǐng)求超時(shí)時(shí)間(毫秒)。此設(shè)置將覆蓋全局設(shè)置。 error: function () { }, success: function (data, textStatus) { if (data == null || data == undefined) { return false; } jsondata = eval('(' + data + ')'); if (jsondata.state == "success") { alert("已經(jīng)退出"); var textList = '<a href="/Login/index.shtml" rel="external nofollow" rel="external nofollow" >【登錄】</a><a href="/Register/index.shtml" rel="external nofollow" rel="external nofollow" >【注冊(cè)】</a>'; $("#state_content").html(textList); //內(nèi)容 } }, beforeSend: function () { } }; jQuery.ajax(Option); return false; }
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結(jié)》、《jQuery操作json數(shù)據(jù)技巧匯總》、《jQuery form操作技巧匯總》、《jQuery常用插件及用法總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery表格(table)操作技巧匯總》及《jquery選擇器用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- jQuery ajax全局函數(shù)處理session過(guò)期后的ajax跳轉(zhuǎn)問(wèn)題
- jQuery+ajax實(shí)現(xiàn)滾動(dòng)到頁(yè)面底部自動(dòng)加載圖文列表效果(類似圖片懶加載)
- jQuery Ajax頁(yè)面局部加載方法匯總
- jQuery結(jié)合AJAX之在頁(yè)面滾動(dòng)時(shí)從服務(wù)器加載數(shù)據(jù)
- 基于jquery的finkyUI插件與Ajax實(shí)現(xiàn)頁(yè)面數(shù)據(jù)加載功能
- jQuery+Ajax請(qǐng)求本地?cái)?shù)據(jù)加載商品列表頁(yè)并跳轉(zhuǎn)詳情頁(yè)的實(shí)現(xiàn)方法
相關(guān)文章
jQuery實(shí)現(xiàn)form表單reset按鈕重置清空表單功能
有時(shí)候可能需要實(shí)現(xiàn)這樣的效果:使用ajax提交表單,成功提交表單之后清空表單,這種功能大家可能都希望實(shí)現(xiàn)吧,接下來(lái)為您詳細(xì)介紹,需要了解的朋友參考下2012-12-12jQuery根據(jù)name屬性進(jìn)行查找的用法分析
這篇文章主要介紹了jQuery根據(jù)name屬性進(jìn)行查找的用法,結(jié)合實(shí)例形式分析了jQuery各種常見(jiàn)name屬性獲取元素的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-06-06jquery實(shí)現(xiàn)的讓超出顯示范圍外的導(dǎo)航自動(dòng)固定屏幕最頂上
經(jīng)常會(huì)遇到這樣的情況,當(dāng)頁(yè)面展示內(nèi)容過(guò)長(zhǎng)時(shí),想點(diǎn)導(dǎo)航切換欄目,就得把滾動(dòng)條拉回到頂上,這樣操作總不太人性化,能不能讓導(dǎo)航超出顯示范圍外時(shí)自動(dòng)貼在屏幕最頂上呢?答案肯定是能的。如果不太明白,把滾動(dòng)條拉到下面點(diǎn),看下我博客是效果就明白了。2011-09-09Jquery根據(jù)瀏覽器窗口改變調(diào)整大小的方法
下面小編就為大家?guī)?lái)一篇Jquery根據(jù)瀏覽器窗口改變調(diào)整大小的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02多種方法實(shí)現(xiàn)360瀏覽器下禁止自動(dòng)填寫用戶名密碼
這篇文章主要介紹了多種方法實(shí)現(xiàn)360瀏覽器下禁止自動(dòng)填寫用戶名密碼,需要的朋友可以參考下2014-06-06JQuery設(shè)置和去除disabled屬性的5種方法總結(jié)
下面與大家分享下兩種方法設(shè)置disabled屬性以及三種方法移除disabled屬性,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助2013-05-05jquery操作ID帶有變量的節(jié)點(diǎn)實(shí)例
下面小編就為大家?guī)?lái)一篇jquery操作ID帶有變量的節(jié)點(diǎn)實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12