《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 談頁面跳轉(zhuǎn)的路由技術(shù)
談頁面跳轉(zhuǎn)的路由技術(shù)
ZDNET網(wǎng)絡(luò)頻道
摘要:   這應(yīng)該不算是一個(gè)很新的技術(shù),但絕對是一個(gè)很有用的技術(shù),這是我在前一個(gè)公司工作時(shí)學(xué)到的,當(dāng)時(shí)實(shí)現(xiàn)的是對php頁面通過路由實(shí)現(xiàn)動態(tài)跳轉(zhuǎn)。沒想到現(xiàn)在這個(gè)項(xiàng)目又將用到。當(dāng)我們的網(wǎng)站頁面很多,需要的跳轉(zhuǎn)很多,而我們又需要動態(tài)地在主頁面中加載子頁面時(shí),就將用到這個(gè)技術(shù)。
關(guān)鍵詞: 路由交換 路由技術(shù)
Abstract:
Key words :

  這應(yīng)該不算是一個(gè)很新的技術(shù),但絕對是一個(gè)很有用的技術(shù),這是我在前一個(gè)公司工作時(shí)學(xué)到的,當(dāng)時(shí)實(shí)現(xiàn)的是對php頁面通過路由實(shí)現(xiàn)動態(tài)跳轉(zhuǎn)。沒想到現(xiàn)在這個(gè)項(xiàng)目又將用到。當(dāng)我們的網(wǎng)站頁面很多,需要的跳轉(zhuǎn)很多,而我們又需要動態(tài)地在主頁面中加載子頁面時(shí),就將用到這個(gè)技術(shù)。我們現(xiàn)在這個(gè)項(xiàng)目前臺由FLEX實(shí)現(xiàn),整個(gè)系統(tǒng)可能只由幾個(gè)application組成,所有的功能點(diǎn)都由module實(shí)現(xiàn),而module本身無法實(shí)現(xiàn)各module間的跳轉(zhuǎn),只能通過application實(shí)現(xiàn)對各個(gè)module的動態(tài)加載來達(dá)到跳轉(zhuǎn)的功能。而一個(gè)項(xiàng)目中可能有上千個(gè)module,公司的每個(gè)人可能會分到上百個(gè)module乃至幾百個(gè)module的任務(wù)。所有的這些module如果不用路由技術(shù),那么每次跳轉(zhuǎn)都要能過觸發(fā)一個(gè)不同的函數(shù)來實(shí)現(xiàn),這樣每一個(gè)application就會有幾百個(gè)這樣的跳轉(zhuǎn)函數(shù),想想那有多么恐怖吧,而且可維護(hù)性將變得極其差。
  如果我們使用了路由技術(shù),那情況就會變得大不一樣了,路由技術(shù)的原理其實(shí)很簡單,就是通過字符串的拼接,拼接出一個(gè)我們需要跳轉(zhuǎn)的url,通過傳遞不同的參數(shù),我們便可達(dá)到跳轉(zhuǎn)到不同頁面的目的。而在我們現(xiàn)在這個(gè)項(xiàng)目中,為了達(dá)到動態(tài)地在application加載module的目的,我把實(shí)現(xiàn)跳轉(zhuǎn)的函數(shù)從
application移到了module,由各個(gè)module自己決定自己要跳轉(zhuǎn)的目的地址,各個(gè)module把組裝完整的url傳遞給application,這樣在application中只要有一個(gè)函數(shù)便可實(shí)現(xiàn)頁面跳轉(zhuǎn)的功能。從幾百個(gè)函數(shù)到一個(gè)函數(shù),我們的application將減少幾千行代碼。最有利的還不是這個(gè),由于把頁面跳轉(zhuǎn)的任務(wù)權(quán)利分到了各個(gè)module,這樣各個(gè)模塊內(nèi)的module將變得更加的獨(dú)立,每個(gè)人只需把自己的module做好便可以了,不用去考慮整個(gè)系統(tǒng)。而且系統(tǒng)的集成將變得極其簡單,維護(hù)也將變得更為獨(dú)立,更不會出現(xiàn)改動了一個(gè)module而牽一發(fā)而動全身的情況。
  由此,在我們的application中,如在mainFrame.mxml中,只需定義一個(gè)實(shí)現(xiàn)跳轉(zhuǎn)的函數(shù)
  如:
  public function jumpTo(toUrl:String):void
  {
  m1.url=toUrl;
  m1.loadModule();
  }
  在各個(gè)module中,必須要把url完全組裝好,包括需要傳遞類似ID的參數(shù)的情況,然后調(diào)用application中的jumpTo()函數(shù)便可。
  如,在我的一個(gè)module中點(diǎn)擊修改按鈕,在這個(gè)module中,加一個(gè)函數(shù)
  public function displayUpdate():void
  {
  var fromTable:String=this.DG.selectedItem.fromTable as String;
  if(fromTable=="large")
  {
  var url:String = "eqm/updateLarge.swf?eqmID="+ this.DG.selectedItem.eqmID as
String;
  }
  else if(fromTable=="small")
  {
  var url:String="eqm/updateSmall.swf?eqmID="+this.DG.selectedItem.eqmID as
String;
  }
  this.parentApplication.jumpTo(url);
  }
  這樣就把實(shí)現(xiàn)跳轉(zhuǎn)的任務(wù)分配到了各個(gè)module,由各個(gè)module自已決定跳轉(zhuǎn)!
  但這樣之后還可能會報(bào)一個(gè)
  FLEX:TypeError: Error #1034: 強(qiáng)制轉(zhuǎn)換類型失敗 的錯(cuò)誤
  這時(shí),在application中加上:
  import mx.managers.DragManager;
  import mx.managers.IPopUpManager;
  private var dragManager : DragManager;
  private var popUpManager : IPopUpManager;
  問題便會得到解決,具體原因如下:(原因轉(zhuǎn)自一臺灣網(wǎng)站,我改成了簡體中文)
  屬于ModuleLoader shared code problem.
  當(dāng)Module中使用managers時(shí)(如PopUpManager,DragManager,
HistoryManager等)則可能出現(xiàn)這個(gè)問題(當(dāng)application里在loader之前沒有引入這些manager的引用時(shí))。
  manager的方法是靜態(tài)方法,整個(gè)應(yīng)用程序中創(chuàng)建了一個(gè)該manager接口的singleton實(shí)例,但module僅在自己的 Application domain中使用該單例, 當(dāng)多個(gè)module使用同一個(gè)單例,manager且main
application沒有使用時(shí),就會出現(xiàn)這個(gè)空對象應(yīng)用問題:第一個(gè)引入某manager的module不能將該manager接口的singleton跟其他module共享,其他module調(diào)用該Manager的方法時(shí),應(yīng)用程序不會再創(chuàng)建該manager接口的實(shí)例,這個(gè)module就無法引用到該manager接口的實(shí)例,就出現(xiàn)了空對象引用問題.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 国色天香社区在线观看免费播放| 丰满多毛的大隂户毛茸茸| 久青草久青草视频在线观看| 国产农村妇女精品一二区| 国产乱XXXXX97国语对白| 午夜精品一区二区三区免费视频| 人妻老妇乱子伦精品无码专区 | 欧美日韩精品在线播放| 精品人妻一区二区三区四区在线| 狂野欧美激情性xxxx在线观看| 欧美成人在线影院| 日本在线高清视频| 好先生app下载轻量版安卓| 成年网站在线观看| 在线小视频国产| 国产在线国偷精品产拍| 再深点灬舒服灬太大了网站| 亚洲成人免费网址| 中文无遮挡h肉视频在线观看| a级片在线免费看| 国产三级小视频在线观看| 精品国产一区二区三区久| 欧美日韩一卡二卡| 日出水了特别黄的视频| 国模gogo中国人体私拍视频 | 妞干网在线视频观看| 国产欧美日产激情视频| 免费看片A级毛片免费看| 久热国产在线视频| 99国产欧美久久久精品| 青青草成人免费| 欧美日韩一区二区三区四区在线观看 | 日本三级吃奶乳视频在线播放| 岳一夜要我六次| 国产污视频在线观看| 你懂的在线视频网站| 久久久精品免费| 97亚洲熟妇自偷自拍另类图片| 美女视频黄A视频全免费| 最近最好最新2018中文字幕免费| 天天曰天天干天天操|