日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
.NETFrameworkSmartNavigation相關(guān)概念解析

.NET Framework SmartNavigation這個(gè)Page屬性很有意思,他在不改動(dòng)(其實(shí)是改動(dòng)很小)頁(yè)面元素布局的情況下,居然可以模擬出非常平滑的“無(wú)刷新”頁(yè)面,為什么這個(gè)“無(wú)刷新”要闊起來(lái)呢?其實(shí)他是刷新了的,而且用的也不是什么xmlhttp也不是xmldom技術(shù),它是事實(shí)在在的Submit,可能這樣是為了瀏覽器兼容性什么的來(lái)考慮的吧。 #t#

華州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

SmartNavigation的實(shí)現(xiàn)原理,其實(shí)和我們?cè)趧?dòng)畫(huà)繪制中使用的雙緩沖技術(shù)及其相似。首先說(shuō)一下他對(duì)普通頁(yè)面的改造,他在普通的.aspx頁(yè)面的返回結(jié)果中,加了兩行代碼,一個(gè)是IFrame,一個(gè)是JScript腳本:

  1. < IFRAME ID="__hifSmartNav" 
    NAME="__hifSmartNav" STYLE=
    "display:none"   
  2. src="/aspnet_client/system_web/
    1_1_4322/SmartNav.htm"> 
  3. < /IFRAME> 
  4. < script language="JScript" 
    src="/aspnet_client/system_web/
    1_1_4322/SmartNav.js"> 
  5. < /script> 

這中間的IFrame(__hifSmartNav)就相當(dāng)于動(dòng)畫(huà)繪制中的實(shí)際繪圖表面,在.NET Framework SmartNavigation中,他就是實(shí)際的Submit頁(yè)面和數(shù)據(jù)接收頁(yè)面。這一切都是SmartNav.js的杰作,SmartNav.js中使用了一個(gè)更有意思的技術(shù),其實(shí)是老的不能再老的技術(shù),用現(xiàn)代的話來(lái)說(shuō)就是hook,說(shuō)遠(yuǎn)點(diǎn)和Dos下修改中斷向量有異曲同工之妙。它是怎么做的呢?其實(shí)除了顯示輸出,一切的操作都克隆到IFrame里去執(zhí)行去了,因?yàn)镮Frame對(duì)象,和Document對(duì)象有著最大的相似性,包括屬性和事件等。

當(dāng)我們執(zhí)行enable了.NET Framework SmartNavigation的頁(yè)面時(shí),它首先被SmartNav.js引導(dǎo),這個(gè)腳本中最關(guān)鍵的一句就是:var rc = window.__smartNav.attachForm();,他的作用就是把我們當(dāng)前頁(yè)面上的form,包裝到一個(gè)叫__smartNav的類中,然后用這個(gè)類來(lái)操作一切navigate。
這是SmartNav.js中最關(guān)鍵最精彩的代碼:

 
 
 
  1. if (snfm.__formAttached == 
    true) return true;   
  2. snfm.__formAttached = true;   
  3. snfm.attachEvent("onsubmit",
     window.__smartNav.init);   
  4. snfmsnfm._submit = snfm.submit;   
  5. snfm.submit = window.__
    smartNav.submit;   
  6. snfm.target = window.__
    smartNav.hifName; 

他完成了form的attach,同時(shí)hook了頁(yè)面的submit事件,還在最后一句把__smartNav中form的target設(shè)定到了__hifSmartNav(這就是隱藏的那個(gè)IFrame)。如果不改變target,那么submit就把我們的當(dāng)前form提交了。

.NET Framework SmartNavigation介紹到這兒已經(jīng)就沒(méi)有什么好說(shuō)得了,提交是__hifSmartNav執(zhí)行的,返回的數(shù)據(jù)也回到了這個(gè)IFrame中,剩下的就是把獲得數(shù)據(jù)寫(xiě)回到我們本來(lái)的那個(gè)document中去,那些代碼比較的復(fù)雜,處理的情況也挺多,連標(biāo)題的更新都是考慮到了的,有興趣就自己去讀讀罷。


網(wǎng)頁(yè)題目:.NETFrameworkSmartNavigation相關(guān)概念解析
文章位置:http://m.5511xx.com/article/cocghpo.html