JAVA & XML & JAVASCRIPT & AJAX & CSS

          Web 2.0 技術儲備............

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            77 隨筆 :: 17 文章 :: 116 評論 :: 0 Trackbacks
          1.?JavaScript對象的引用
          為了減少JavaScript對象的下載次數,Tasian只會在瀏覽器第一次請求應用時才會下載JavaScript文件。JavaScript對象只會駐留在Top級窗體,任何其它窗體需要引用到該JavaScript對象,只需要在引如下的方式進行引用就行:

          需要引用的窗體Button?=?top.Button?//參閱MscrRouter.js

          而Button真正定義的JavaScript文件處于Top窗體,為了保證定義的對象格式能跨瀏覽器有效,Tasian使用了如下的格式進行對象定義:
          //定義對象名
          function?MscrButton()
          {
          };
          //定義對象的方法
          MscrButton.onClick?=?function(strWin,?strName)
          {
          MscrSystem.setAction(strWin,?strName,?"click",?"");?
          };

          請注意,在每個函數后面都有一個分號,這一點對于Tasian非常的重要。因為Tasian中所使用的JavaScript文件都是經過壓縮的,并且將全局的JavaScript對象定義合成在一個JavaScript文件中。它的好處是減少網絡流量、減少JavaScript對象對客戶端資源的占用及減少對服務器請求的發送。

          2.?遮罩運用
          遮罩是指在一個對象上放置一個新的對象,新對象便是遮罩層。它能截獲所有被遮罩對象的事件。

          Tasian所有的窗體都是在一個Iframe,?對于窗體拖動,在IE中能容易地進行事件捕捉處理,可以在非IE的瀏覽器中,當Mouse移到Iframe時,該Iframe將會最先處理該事件,使得對Iframe的拖動無效。所以Tasian會在Iframe上加上一個可以關開的遮罩層DIV元素,當要進行窗體對象拖動時,該層會打開,當拖動完成后,該層會關閉。

          3.?模態窗體Tasian有一個特殊的窗體,只有當它關閉時才能操作其它窗體內容。該窗體叫模態窗體。在JavaScript實現模擬窗體時,也是使用了一個DIV層,使得它始終于模態窗體的下一級,這樣它就能截獲所有對它父窗體的操作事件。

          4.?動態事件綁定
          在IE在動態事件綁定是通過attachEvent實現的,而在Mozilla系列是使用addEventListener。以下是代碼摘自document.js兩者的使用方法
          if?(top.isIE)
          {
          oDB.setCapture();
          oDB.attachEvent("onmousemove",?__resizingMe);
          oDB.attachEvent("onmouseup",?__endResizeMe);
          }
          else
          {
          document.captureEvents(Event.MOUSEEVENT?|?Event.MOUSEUP);?
          document.addEventListener("mousemove",?__resizingMe,?false);
          document.addEventListener("mouseup",?__endResizeMe,?false);
          }

          ….
          if?(top.isIE)
          {
          oDB.detachEvent("onmousemove",?__resizingMe);
          oDB.detachEvent("onmouseup",?__endResizeMe);
          oDB.releaseCapture();

          }
          else
          {
          document.releaseEvents(Event.MOUSEMOVE?|?Event.MOUSEUP);
          document.removeEventListener("mousemove",?__resizingMe,?false);
          document.removeEventListener("mouseup",?__endResizeMe,?false);
          }

          5.?Style對象
          對于IE中HTML元素的Style對象其強大之處大家都了解,可是對于Mozilla中HTML的Style對象由于其相關介紹實在太少,所以大家都對它很陌生。其實Mozilla中的Style仍然很強大,IE能完成的功能,它大都能完成,只不過大家不了解罷了。比如IE中有filter屬性用來設置漸近色,而Mozilla中可以用alpha實現。

          以下代碼摘自MscrSystem.js
          if?(!isIE)
          {

          oEnMsk.style.filter?=?"alpha(opacity?=?35)";
          oEnMsk.style.MozOpacity?=?0.35;

          }
          else
          {
          var?strHTML?=?"
          strHTML?+=?">";

          oObj.parentNode.insertAdjacentHTML("BeforeEnd",?strHTML);
          }

          當然Mozilla的Style屬性遠不止如此,它還可以設置DIV的外觀:圓形、郁圓形等。
          posted on 2006-03-21 09:42 Web 2.0 技術資源 閱讀(2160) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 格尔木市| 罗平县| 思南县| 浮梁县| 定结县| 昌黎县| 霸州市| 万山特区| 阳城县| 新乡市| 普兰店市| 婺源县| 隆回县| 浦江县| 商南县| 乃东县| 桂平市| 杭锦后旗| 庆阳市| 汉源县| 呼玛县| 嘉义市| 治县。| 罗平县| 左云县| 广水市| 东乡| 新兴县| 广南县| 大名县| 宝清县| 乌苏市| 五家渠市| 彰武县| 上犹县| 团风县| 南川市| 那曲县| 红原县| 峡江县| 扎鲁特旗|