AJAX使用技巧:如何處理書(shū)簽和翻頁(yè)按扭_.Net教程
推薦:使用ASP.NET AJAX框架擴(kuò)展HTML Map控件【摘要】在本文中,我將向你展示如何使用ASP.NET AJAX框架對(duì)添加可點(diǎn)擊的熱點(diǎn)的HTML Map控件進(jìn)行擴(kuò)展。經(jīng)擴(kuò)展后,當(dāng)我們的鼠標(biāo)移動(dòng)到這些熱點(diǎn)上后,即彈出關(guān)于這些熱點(diǎn)的詳細(xì)信息;但是,這些詳
本篇文章提供了一個(gè)開(kāi)源JavaScript庫(kù),它提供了給AJAX應(yīng)用程序中添加書(shū)簽和會(huì)退按鈕的功能。在學(xué)習(xí)完這個(gè)教程后,開(kāi)發(fā)者將能夠?qū)﹂_(kāi)發(fā)AJAX應(yīng)用碰到的問(wèn)題獲得一個(gè)解決方案,這個(gè)特性甚至Google Maps 和 Gmail 現(xiàn)在都不提供:提供一個(gè)強(qiáng)大的,可用的書(shū)簽和前進(jìn)回退按鈕,如同其他的WEB應(yīng)用一樣的行為。
AJAX“如何處理書(shū)簽和回退按鈕”闡述了AJAX應(yīng)用程序開(kāi)發(fā)書(shū)簽和回退按鈕功能碰到的嚴(yán)重的問(wèn)題;可以解決以上問(wèn)題的一個(gè)開(kāi)源框架,并提供真實(shí)、簡(jiǎn)單的歷史記錄庫(kù),還提供了幾個(gè)運(yùn)行中的例子。
本文把這個(gè)框架提供的重要發(fā)現(xiàn)分兩個(gè)部分來(lái)說(shuō)明:首先,一個(gè)隱藏的HTML表單用來(lái)緩存大量短暫的在客戶端信息。這些緩存為網(wǎng)頁(yè)導(dǎo)航提供了強(qiáng)大的支持。其次,一個(gè)隱藏的IFrame和超級(jí)鏈接用來(lái)截取和記錄瀏覽器的歷史事件提供回退按鈕和向前按鈕的支持。以上兩個(gè)技術(shù)都是通過(guò)包裝在一個(gè)簡(jiǎn)單的JavaScript庫(kù)中來(lái)實(shí)現(xiàn)簡(jiǎn)單開(kāi)發(fā)。
問(wèn)題:書(shū)簽和回退按鈕在傳統(tǒng)的多頁(yè)面的Web應(yīng)用程序中工作的非常好。當(dāng)用戶瀏覽網(wǎng)站的時(shí)候,瀏覽器的地址欄記錄隨新的URLs更新,這些記錄可以拷貝到email 或者 書(shū)簽中供以后使用�;赝撕颓斑M(jìn)按鈕可以幫助用戶在他瀏覽過(guò)的網(wǎng)頁(yè)中向前或向后翻動(dòng)。
AJAX 應(yīng)用程序卻是不同的,他們是運(yùn)行在一個(gè)網(wǎng)頁(yè)中的復(fù)雜程序。瀏覽器并不是為這類(lèi)程序制作的———這類(lèi)程序是過(guò)去的,在每次鼠標(biāo)點(diǎn)擊的時(shí)候需要重新刷新整個(gè)頁(yè)面。
在類(lèi)似Gmail的AJAX軟件中,瀏覽器的地址欄在用戶選擇功能和改變程序狀態(tài)的時(shí)候保持不變,這讓書(shū)簽在這類(lèi)程序中無(wú)法使用。未來(lái),如果用戶按下“回退”按鈕來(lái)撤銷(xiāo)上次的動(dòng)作,而瀏覽器和應(yīng)用程序分離的狀況會(huì)讓用戶很吃驚。
解決方案:開(kāi)源Really Simply History (RSH)框架可以用來(lái)解決上面的問(wèn)題,為AJAX應(yīng)用程序提供書(shū)簽和控制“回退”、“向前”按鈕的功能。RSH 目前還是Beta 狀態(tài),可以在Firefox 1.0 , Netscape 7 ,Internet Explorer 6 等瀏覽器上工作,目前還不支持Safari瀏覽器�?梢詤⒖迹壕幋a天堂:Safari:不可能的DHTML歷史記錄。
有幾類(lèi)AJAX框架目前也支持書(shū)簽和歷史訪問(wèn)的問(wèn)題,但這些框架因?yàn)閷?shí)現(xiàn)方式的不同,目前都有幾個(gè)大Bug。未來(lái),很多AJAX框架,比如Backbase 和 Dojo 將會(huì)整合歷史瀏覽的功能;這些框架為AJAX應(yīng)用程序采用完全不同的編程模型,強(qiáng)迫程序員使用完全不同的方式來(lái)實(shí)現(xiàn)歷史瀏覽的功能。
相反,RSH 是一個(gè)可以包含在現(xiàn)有AJAX系統(tǒng)的單模塊。未來(lái),RSH庫(kù)會(huì)進(jìn)一步改進(jìn)避免和其他框架的相關(guān)功能沖突。
RSH 歷史框架由兩個(gè)JavaScript類(lèi)組成:DhtmlHistory 和 HistoryStorage。
DhtmlHistory 類(lèi)為AJAX應(yīng)用程序提供歷史瀏覽記錄的抽象。AJAX 頁(yè)面 add() 歷史瀏覽記錄事件到瀏覽器,保存指定新的地址和相關(guān)的歷史數(shù)據(jù)。DhtmlHistory 類(lèi)使用Hash連接更新瀏覽器當(dāng)前的URL,比如:#new-location,同時(shí)把歷史數(shù)據(jù)和新的URL關(guān)聯(lián)。AJAX 應(yīng)用程序把自己注冊(cè)為歷史瀏覽的監(jiān)聽(tīng)器,當(dāng)用戶使用 “前進(jìn)”“回退”按鈕來(lái)瀏覽時(shí),歷史瀏覽時(shí)間被觸發(fā),調(diào)用 add() 方法來(lái)提供給瀏覽器新的地址,并保存歷史數(shù)據(jù)。
第二個(gè)類(lèi): HistoryStorage允許程序員保存任意的歷史瀏覽數(shù)據(jù)。在普通的網(wǎng)頁(yè)中,當(dāng)用戶瀏覽到一個(gè)新的網(wǎng)址,瀏覽器卸載并清除當(dāng)前網(wǎng)頁(yè)所有的程序和JavaScript狀態(tài),如果用戶返回時(shí),所有的數(shù)據(jù)都丟失了。HsitoryStorage 類(lèi)提供帶有Hash表的API通過(guò) put() , get() , hasKey() 等方法來(lái)解決這類(lèi)問(wèn)題。上面的方法允許程序員保存用戶離開(kāi)網(wǎng)頁(yè)時(shí)的任意數(shù)據(jù),當(dāng)用戶按“回退”按鈕重新返回時(shí),歷史數(shù)據(jù)可以通過(guò)HistoryStorage類(lèi)來(lái)訪問(wèn)。我們起初通過(guò)使用隱藏的表單字段來(lái)實(shí)現(xiàn),因?yàn)闉g覽器自動(dòng)保存一個(gè)表單中字段值,甚至用戶離開(kāi)網(wǎng)頁(yè)的時(shí)候也如此。
例子:先從一個(gè)簡(jiǎn)單的例子開(kāi)始吧:
首先,需要RSH框架的網(wǎng)頁(yè)中需要包含 dhtmlHistory.js 教本:
| 以下為引用的內(nèi)容: src="../../framework/dhtmlHistory.js"> |
RSH 框架創(chuàng)建了一個(gè)叫dhtmlHistory的全局對(duì)象,這是控制瀏覽器歷史瀏覽記錄的入口點(diǎn)。第一步在網(wǎng)頁(yè)完成裝載后需要初始化 dhtmlHistory 對(duì)象。
| 以下為引用的內(nèi)容: window.onload = initialize; function initialize() { // initialize the DHTML History // framework dhtmlHistory.initialize(); |
分享:ASP.NET調(diào)用oracle存儲(chǔ)過(guò)程實(shí)現(xiàn)快速分頁(yè)《使用 ADO.NET 訪問(wèn) Oracle 9i 存儲(chǔ)過(guò)程》見(jiàn)下面的介紹(如果對(duì)這個(gè)不怎么懂的,還是先看看下面文章) http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx 包
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- ASP.NET中后臺(tái)注冊(cè)js腳本使用的方法對(duì)比
- 如何用asp.net判斷鏈接是否來(lái)自外部
- aspx是什么格式 ASPX文件怎么打開(kāi)
- C#實(shí)現(xiàn)圖片壓縮方法
- ASP.NET 2.0中CSS不正常的解決方法
- 跟著hsp一步步學(xué)mysql優(yōu)化的方法
- asp.net初學(xué)者:petshop4.0設(shè)計(jì)說(shuō)明
- 基于.NET中建構(gòu)子中傳遞子對(duì)象的對(duì)象詳解
- 基于.Net中的數(shù)字與日期格式化規(guī)則助記詞的使用詳解
- 揭秘ASP.NET常用的26個(gè)優(yōu)化性能方法
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-AJAX使用技巧:如何處理書(shū)簽和翻頁(yè)按扭
。