亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Ajax程序中,自己實現頁面前進、后退、與標簽功能(asp.net2.0)

2019-11-18 16:54:47
字體:
來源:轉載
供稿:網友

       第一次寫博客,并且斗膽發表技術類文章,請大家不要見笑,有寫的失敗或雷同的地方請大家扔磚頭敲我吧!
       Ajax剛入門不久,便寫了一個Ajax+C#的留言本程序,在實際寫程序中,漸漸發現了Ajax程序許多不成熟的地方,其中比較典型的就是頁面的前進、后退與標簽問題,因為Ajax整個程序是采用無刷新與服務器進行交互,所以導致了大部分瀏覽器的前進后退的功能按鈕失效,當然標簽功能也失去了意義,如果用Ajax開發一個論壇的話,在堆積如山的帖子中必然有經典,但是我們在關閉瀏覽器后,就得重新從頭開始尋找,這樣實在是太痛苦了,所以為了彌補這個缺點,大家各出奇招,現在我向大家描述一下,在我的程序中,怎樣實現這些功能。

      我把實現功能的主要程序代碼寫在imitateHistory.js這個文件中

imitateHistory.js
 1 //定義一個全局數組
 2 var hashList = new Array();
 3 //定義一個全局變量,用來作為hash的編號
 4 var hashNO = 0;
 5 //初始化數組,將初次裝載的頁面的hash添加進數組
 6 hashList[0] = window.location.hash.replace('#','');
 7 //將Hash填加到數組
 8 function addHash(newHash)
 9 {   
10     //這個判斷是檢測是否在點擊后退按鈕后,再點擊了新的鏈接 
11     if(hashNO!=(hashList.length - 1))
12     { 
13         //刪除此頁標識以后的數組項
14     hashList.splice(hashNO+1,(hashList.length-(hashNO+1)));
15     }
16     hashList[hashList.length] = newHash;
17     //指向本頁hash的編號
18     hashNO = hashList.length - 1;
19     //將Hash賦值給瀏覽器
20     makeHistory(newHash);
21     //根據瀏覽器的hash,加載數據
22     urlCode();
23     checkLinkButton();
24 }
25 //將Hash賦值給瀏覽器
26 function makeHistory(newHash)
27 {
28     window.location.hash = newHash;
29 }
30 //檢測導航按鈕狀態(按鈕是否可用)
31 function checkLinkButton()
32 {
33     if(hashList.length>1)
34     {
35         if(hashNO>0)
36         {
37             document.getElementById('Back').disabled='';
38         }
39         else
40         {
41             document.getElementById('Back').disabled='disabled';
42         }
43         if(hashNO<(hashList.length-1))
44         {
45             document.getElementById('Next').disabled='';
46         }
47         else
48         {
49             document.getElementById('Next').disabled='disabled';
50         }  
51    }
52 }
53 //后退按鈕onclick事件
54 function linkBack()
55 {
56     hashNO = hashNO - 1;
57     makeHistory(hashList[hashNO]);
58     //根據瀏覽器的hash,加載數據
59     urlCode();
60     checkLinkButton();
61 }
62 //前進按鈕onclick事件
63 function linkNext()
64 {
65     hashNO = hashNO + 1;
66     makeHistory(hashList[hashNO]);
67     //根據瀏覽器的hash,加載數據
68     urlCode();
69     checkLinkButton();
70 }
71 //根據瀏覽器的hash,加載數據
72 function urlCode()
73 {
74     var TempHash = window.location.hash;
75     //下面的"home"、"msgList"只是做個標識,可以自己定義
76     //根據瀏覽器的hash,加載數據
77     switch(TempHash)
78     {
79     case"":
80         alert('調用你的首頁');
81         break;
82     case"home":
83         alert('調用你的首頁');
84         break;
85     }
86     //如果是留言本的頁碼標簽
87     if (TempHash.substr(1,7)=="msgList")
88     {
89         var page;
90         //取得當前頁碼
91         page = window.location.hash.substr(8,window.location.hash.length);
92         alert('根據頁碼調用你的留言列表');
93     }
94     //當然如果是論壇的帖子標簽,我想也只是對TempHash這個字符串多玩幾個花樣而已,具體我就不介紹了。
95 }

以上主要是用到JS數組的存儲功能,用window.location.hash這個方法來操作瀏覽器的碎片標識。
下面是一個測試用的HTML文件,向大家描述一下具體的使用方法。
文件名test.html

test.html
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " 2 <html xmlns=" 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
 5     <title>測試</title>
 6     <scr
ipt language="javascript" src="imitateHistory.js" type="text/Javascript"></script>
 7     <script language="javascript" type="text/javascript">
 8     <!--
 9     //頁面裝載完后,通過瀏覽器的Hash初始化你的Ajax程序。
10     function window.onload()
11     {
12         urlCode();
13     }
14     //我用下面這個方法來模擬AJAX回調不同的模塊。
15     function imitateAjax(mode)
16     {
17         switch(mode)
18         {
19             case "home":
20                 document.getElementById('divAjax').innerHTML="你現在調用的是首頁模塊";
21                 break;
22             case "news":
23                 document.getElementById('divAjax').innerHTML="你現在調用的是新聞模塊";
24                 break;
25             case "photo":
26                 document.getElementById('divAjax').innerHTML="你現在調用的是圖片模塊";
27                 break;
28             case "music":
29                 document.getElementById('divAjax').innerHTML="你現在調用的音樂是模塊";
30                 break;
31             case "msgList1":
32                 document.getElementById('divAjax').innerHTML="你現在調用的是留言列表的第 1 頁<br /><br /><span>上一頁
33
34 </span>&nbsp;&nbsp;&nbsp;&nbsp;<span style='cursor:hand;' onclick=addHash('msgList2')>下一頁</span>";
35                 break;
36             case "msgList2":
37                 document.getElementById('divAjax').innerHTML="你現在調用的是留言列表的第 2 頁<br /><br /><span
38
39 style='cursor:hand;' onclick=addHash('msgList1')>上一頁</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style='cursor:hand;'
40
41 onclick=addHash('msgList3')>下一頁</span>";
42                 break;
43             case "msgList3":
44                 document.getElementById('divAjax').innerHTML="你現在調用的是留言列表的第 3 頁<br /><br /><span
45
46 style='cursor:hand;' onclick=addHash('msgList2')>上一頁</span>&nbsp;&nbsp;&nbsp;&nbsp;<span>下一頁</span>";
47                 break;
48          }
49     }
50     -->
51     </script>
52 </head>
53 <body>
54     <input id="Back" onclick="linkBack();" type="button" disabled="disabled" value="←" />&nbsp;&nbsp;
55     <input id="Next" onclick="linkNext();" type="button" disabled="disabled" value="→" />
56     <br />
57     <br />
58     <br />
59     <input onclick="addHash('home');" type="button" value="首頁" />&nbsp;&nbsp;
60     <input onclick="addHash('news');" type="button" value="新聞" />&nbsp;&nbsp;
61     <input onclick="addHash('photo');" type="button" value="圖片" />&nbsp;&nbsp;
62     <input onclick="addHash('music');" type="button" value="音樂" />&nbsp;&nbsp;
63     <input onclick="addHash('msgList1');" type="button" value="留言" />
64     <br />
65     <br />
66     <div id='divAjax' style="background-color:#CCCCCC; height:100px;"></div>
67 </body>
68 </html>

文章就寫到這里了,小弟我是菜鳥,望各位大哥多多指教,如果有看不明白的地方就請大家給我留言吧!
http://www.49028c.com/aiqingayu/archive/2006/10/24/538653.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
免费不卡欧美自拍视频| 51色欧美片视频在线观看| 国产91九色视频| 日韩欧美一区二区在线| 欧美日韩在线视频首页| 欧美第一黄网免费网站| 国模精品系列视频| 亚洲韩国欧洲国产日产av| 亚洲区在线播放| 欧美一级高清免费| 精品网站999www| www.亚洲天堂| 日韩国产高清视频在线| 亚洲a成v人在线观看| 97视频在线看| 久久精品国产综合| 欧美日韩亚洲系列| 久久成人综合视频| 欧美成人h版在线观看| 欧美成人免费在线观看| 国产精品电影久久久久电影网| 国产欧美精品一区二区三区-老狼| 亚洲欧美日韩精品| 亚洲一区二区三区在线视频| 91久久在线观看| 欧美日产国产成人免费图片| 美女av一区二区| 亚洲精品欧美日韩专区| 欧美激情a∨在线视频播放| 国产精品pans私拍| 国产精品一区二区久久国产| 久久亚洲欧美日韩精品专区| 国产精品久久在线观看| 丝袜一区二区三区| 欧美午夜久久久| 97超级碰碰碰久久久| 成人精品久久av网站| 国产69精品久久久久久| 欧美成年人在线观看| 97久久精品视频| 91精品国产91久久久| 中文字幕在线看视频国产欧美| 欧美中在线观看| 亚洲欧美制服另类日韩| 欧美日韩国产精品专区| 日韩在线欧美在线国产在线| 久久久久久成人| 国产在线观看精品| 中文字幕日韩欧美在线| 精品国产1区2区| 色偷偷91综合久久噜噜| 成人精品久久av网站| 91精品久久久久| 中文字幕日韩综合av| 色综合久久88色综合天天看泰| 久久午夜a级毛片| 在线观看欧美日韩国产| 上原亚衣av一区二区三区| 亚洲国产精品va在线观看黑人| 青青久久av北条麻妃黑人| 精品中文字幕在线| 欧美日韩xxxxx| 久久久国产视频| 成人有码视频在线播放| 欧美成人剧情片在线观看| 亚洲二区在线播放视频| 性欧美亚洲xxxx乳在线观看| 不卡av日日日| 欧美大全免费观看电视剧大泉洋| 青青草99啪国产免费| 91美女高潮出水| 国产精品电影观看| 国产一级揄自揄精品视频| 粉嫩av一区二区三区免费野| 欧洲成人在线观看| 日本欧美在线视频| 精品毛片网大全| 日韩av不卡电影| 91亚洲精品一区二区| 欧美国产日韩二区| 国产精品久久久久久久av电影| 成人激情视频在线| 在线成人一区二区| 亚洲精品国产精品久久清纯直播| 欧美一级片久久久久久久| 亚洲国产私拍精品国模在线观看| 亚洲美女在线观看| 中文字幕免费国产精品| 国产啪精品视频| 欧美激情女人20p| 日韩欧美在线国产| 亚洲免费成人av电影| 国产日韩欧美日韩大片| 亚洲精品福利免费在线观看| 亚洲最大福利视频网站| 欧美激情国产日韩精品一区18| 久久91亚洲人成电影网站| 91久久精品一区| 欧美一级淫片videoshd| 第一福利永久视频精品| 欧美成人国产va精品日本一级| 国产精品露脸自拍| 欧美日韩另类字幕中文| 亚洲精品国产suv| 欧美性视频精品| 国产日本欧美一区二区三区| 亚洲第一视频网站| 久久久久久噜噜噜久久久精品| 久久久av一区| 成人在线精品视频| 日韩一区视频在线| 国产精品午夜国产小视频| 亚洲在线www| 国产成人精品久久久| 成人网页在线免费观看| 亚洲人成免费电影| 92看片淫黄大片看国产片| 亚洲欧美日韩另类| 国产亚洲精品美女| 亚洲电影中文字幕| 日韩av在线网| 这里只有精品在线观看| 成人国产精品一区| 成人精品视频99在线观看免费| 国产精品久久久久高潮| 国产一区二区色| 在线观看亚洲视频| 亚洲天堂久久av| 欧美性69xxxx肥| 久久精品国产成人精品| 日韩av在线导航| 久久精品视频亚洲| 久久久久久久97| 国产日韩精品综合网站| 欧美与欧洲交xxxx免费观看| 亚洲自拍高清视频网站| 国产成人jvid在线播放| 午夜欧美不卡精品aaaaa| 亚洲二区在线播放视频| 精品国产依人香蕉在线精品| 亚洲欧美日韩中文在线制服| 欧美高跟鞋交xxxxhd| 不卡毛片在线看| 国产69精品99久久久久久宅男| 久久九九亚洲综合| 亚洲在线视频观看| 亚洲欧美国产精品va在线观看| 欧美日韩福利电影| 亚洲欧美日韩中文在线制服| 欧美亚洲激情视频| 久久久久久久久国产| 亚洲а∨天堂久久精品喷水| 91av视频在线免费观看| 日韩电影在线观看永久视频免费网站| 日韩成人中文字幕在线观看| 91福利视频在线观看| 欧美成人网在线| 日本国产一区二区三区| 欧美理论电影在线播放| 亚洲高清av在线| 2020欧美日韩在线视频| 91chinesevideo永久地址| 久久午夜a级毛片| 91国产精品91|