Behaviour.js 真正的清潔了html?

          Posted on 2005-11-24 23:10 BlueO2 閱讀(961) 評論(1)  編輯  收藏 所屬分類: AJAX

          http://bennolan.com/behaviour/   為了避免在html中引入過多的script tag,尤其現在富客戶端應用很火的時候,script寫的就越發的多。
          官方網站舉了一個這樣子的例子

          <div id="image_16209134_normal">
          <script language="Javascript">
          photo_hash['
          16209134'] = new Object();
          photo_hash['
          16209134'].title =
           '2am on Saturday';
          </script>
          <h4 id="title_div16209134" 
              style
          ="margin-bottom: 0px; margin-top: 0px;">

              2am on Saturday
          </h4>
          <script type="text/javascript">initPhotosUserPageTitle_div('16209134');</script>

          這是Flickr上面一段代碼。確實,它使得代碼閱讀起來結構不清晰了。Behavior應用之后,不需在元素上寫明觸發事件要執行的方法,比如
          <a onclick="this.parentNode.removeChild(this)" href="#">
          Click me to delete me
          </a>
          而變成了
          <ul id="example">
          <li>
          <a href="/someurl">Click me to delete me</a>
          </li>
          </ul>
          那么javascript如果找到這個a鏈接并加上onclick事件方法的呢?采用css selector

          var myrules = {  
          '#example li' : function(el){  
          el.onclick = function(){   
          this.parentNode.removeChild(this);  
          } }};
          Behaviour.register(myrules); 確實看起來,html清爽了,但是,卻引入了其他的元素。ok,我們可以為每個控件定義id,其實也未嘗不可,asp.net不也是web component開發的時候都定義id的么?可似乎又脫褲子放屁之嫌。在維護一個對某一組應用相同樣式或響應
          相同方法的html控件上應用behavior,有意義,起碼不必每個上面都寫上onclick之類的,但是對于更普遍的應用,每個html控件要做得事情是不同的啊。那個時候,不但用behavior代碼量增加了,而且維護一個var myrules里的內容和去刪除控件上的onclick其實工作量差不多。真正的應用可不是demo啊,列出來一排link寫著remove me,然后執行一樣的動作。
          不過正如我上面說的,還是有一定的應用場景的,大家可以在有此需求的時候考慮,還有一Behaviour.js





          Feedback

          # re: Behaviour.js 真正的清潔了html?  回復  更多評論   

          2006-01-18 01:00 by 拐拐龍底咚
          今天發現了它的一個變種(?)degrader.js
          http://blog.chunzi.org/archives/2005/11/oe_behaviourjs.html

          posts - 29, comments - 3, trackbacks - 0, articles - 0

          Copyright © BlueO2

          主站蜘蛛池模板: 子洲县| 东阳市| 湘乡市| 文昌市| 衡山县| 元谋县| 中阳县| 桦甸市| 大港区| 宁强县| 揭东县| 广水市| 无锡市| 木里| 应用必备| 麻栗坡县| 巴中市| 霍林郭勒市| 大庆市| 石渠县| 崇礼县| 孟津县| 贵州省| 昌平区| 鄂托克旗| 察雅县| 化隆| 灌南县| 中方县| 安塞县| 察隅县| 镇沅| 藁城市| 伊宁市| 西贡区| 陇川县| 绥德县| 通山县| 洪泽县| 原平市| 华阴市|