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

首頁 > 開發 > AJAX > 正文

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

2024-09-01 08:26:28
字體:
來源:轉載
供稿:網友
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" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml" >
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
5 <title>測試</title>
6 <script 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>

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美在线免费观看| 中文字幕在线看视频国产欧美| 中文字幕在线看视频国产欧美| 亚洲欧美激情一区| 成人h视频在线| 国产深夜精品福利| 国产精品91在线观看| 亚洲欧美中文字幕在线一区| 欧美性色19p| 久久伊人精品天天| 国产精品一区二区三区毛片淫片| 日韩欧美在线中文字幕| 亚洲成avwww人| 日本免费在线精品| 国语自产精品视频在线看一大j8| 亚洲美女视频网| 国产精品白嫩美女在线观看| 久久97精品久久久久久久不卡| 日韩成人中文字幕在线观看| 亚洲乱码一区二区| 国产精品嫩草影院久久久| 日韩成人小视频| 欧美中文字幕第一页| 欧美黄色免费网站| 日韩大陆毛片av| 国产精品美女www| 中文字幕成人精品久久不卡| 欧美日本亚洲视频| 亚洲a∨日韩av高清在线观看| 久久手机精品视频| 欧美性猛交xxxx免费看| 久久6免费高清热精品| 最近2019年手机中文字幕| 久久天天躁狠狠躁夜夜躁2014| 日韩福利伦理影院免费| 欧美亚洲午夜视频在线观看| 欧美激情精品久久久久久变态| 精品国内亚洲在观看18黄| 日本韩国欧美精品大片卡二| 久久久久久久久久婷婷| 久久久久久久久久久亚洲| 久久精品国产一区二区电影| 成人网在线免费观看| 日本高清久久天堂| 91av在线不卡| 亚洲午夜av久久乱码| 国产97在线视频| 国产精品第100页| 国产精品视频xxxx| 成人免费自拍视频| 欧美高清第一页| 欧美诱惑福利视频| 亚洲精品视频二区| 亚洲夜晚福利在线观看| 成人在线激情视频| 日韩欧美在线视频观看| 亚洲毛片在线观看.| 欧美成人久久久| 欧美日韩另类字幕中文| 国产一区二区精品丝袜| 国产97免费视| 亚洲欧美日本伦理| 国产成人精品999| 亚洲天堂开心观看| 欧美成人精品一区二区三区| 日韩成人中文字幕| 亚洲视频综合网| 丝袜美腿精品国产二区| 92福利视频午夜1000合集在线观看| 国产精品永久免费视频| 久久亚洲精品毛片| 国产精品久久激情| 国产精品美女999| 国产精品白丝av嫩草影院| 国产精品亚洲精品| 日韩在线观看网站| 亚洲偷熟乱区亚洲香蕉av| 亚洲视频专区在线| 亚洲精品视频二区| 欧美成人国产va精品日本一级| 欧美激情伊人电影| 韩国19禁主播vip福利视频| 久久99国产精品自在自在app| 国产欧美精品va在线观看| 久久免费视频这里只有精品| 狠狠久久亚洲欧美专区| 亚洲女成人图区| 国产性猛交xxxx免费看久久| zzijzzij亚洲日本成熟少妇| 丝袜亚洲另类欧美重口| 国产视频自拍一区| 美女精品视频一区| 97av在线视频| 91精品国产精品| 国产免费久久av| 视频直播国产精品| 欧美成人sm免费视频| 最新中文字幕亚洲| 日韩欧美国产网站| 国产一区二区三区18| 久久99精品国产99久久6尤物| 亚洲欧美精品在线| 日韩在线观看你懂的| 中文字幕日韩精品有码视频| 久久久天堂国产精品女人| 日本精品免费观看| 成人国产亚洲精品a区天堂华泰| 国产精品综合不卡av| 国产精品专区第二| 国内免费精品永久在线视频| 午夜免费日韩视频| 欧美性猛交xxxx免费看| 精品国产成人av| 亚洲欧美另类国产| 国产精品欧美久久久| 亚洲视频一区二区三区| 国产女同一区二区| 亚洲精品国偷自产在线99热| 色黄久久久久久| 欧美激情一级二级| 伊人久久综合97精品| 欧美日韩黄色大片| 日韩av三级在线观看| 草民午夜欧美限制a级福利片| 在线亚洲午夜片av大片| 精品久久久久久中文字幕一区奶水| 日韩小视频网址| 国产999精品| 91av在线视频观看| 一本色道久久88综合亚洲精品ⅰ| 国产精品女主播| 在线日韩欧美视频| 91亚洲va在线va天堂va国| 黄网动漫久久久| 亚洲第一福利网站| 麻豆成人在线看| 在线观看欧美成人| 欧美性xxxx极品高清hd直播| 国模私拍视频一区| 久久99亚洲热视| 成人激情在线播放| 国产精品精品久久久| 欧美成人三级视频网站| 揄拍成人国产精品视频| 亚洲国产成人精品久久久国产成人一区| 9.1国产丝袜在线观看| 91成人国产在线观看| 成人欧美一区二区三区在线| 欧美黄色片视频| 精品久久久久久久久久国产| 久久资源免费视频| 亚洲大胆人体av| 亚洲国产成人久久综合| 日韩影视在线观看| 亚洲国产美女久久久久| 97久久精品人搡人人玩| 日日噜噜噜夜夜爽亚洲精品| 国产精品永久免费观看| 精品国产一区二区三区四区在线观看| 欧美日本在线视频中文字字幕| 欧美国产日本高清在线| 国产精品麻豆va在线播放| 欧美激情精品久久久久久蜜臀| 久久久精品免费|