posts - 176, comments - 240, trackbacks - 0, articles - 7

          AjaxAnywhere

          Posted on 2005-11-23 21:53 canonical 閱讀(857) 評論(0)  編輯  收藏 所屬分類: 軟件開發(fā)
              http://ajaxanywhere.sourceforge.net/index.html
              AjaxAnywhere利用JSP標(biāo)簽把Web頁面標(biāo)注出可以動態(tài)裝載的區(qū)域, 可以直接把任何JSP頁面轉(zhuǎn)化為AJAX感知組件而不需要進行復(fù)雜的Javascript編碼.
              <script> ajaxAnywhere.getZonesToLoad = function(url){ return "countriesList"; } </script>
              <select size="10" name="language" onchange="ajaxAnywhere.submitAJAX();">
                  <%@ include file="/locales_options_lang.jsp"%>
              </select>

              <aa:zone name="countriesList">

                  <select size="10" name="country" >
                      <%@ include file="/locales_options_countries.jsp"%>
                  </select>

              </aa:zone>
             
             AjaxAnywhere的這種做法與witrix平臺中的ajax方案有些類似, 例如
             
              <select onchange="new js.Ajax().setObjectEvent('changeLanguage').setParam(this).setTplPart('countriesList').replaceChildren('countriesList')"> ...</select>

              <div id="countriesList">
             <tpl:define id="countriesList">
                 ....
             </tpl:define>
              </div>

              但是在AjaxAnywhere的方案中, 后臺jsp頁面總是要完整運行的, 它通過servlet filter機制緩存所有的jsp輸出, 而aa:zone標(biāo)簽則把自己的bodyContent運行后的結(jié)果保存在request的attribute中, 最后servlet filter根據(jù)調(diào)用參數(shù)決定返回那些zone的運行結(jié)果. 而在witrix平臺中的方案中, 只有指定的tplPart才會被運行, 其他部分完全被忽略. 這種差異的根源在于Jsp Tag技術(shù)本身的局限性. Jsp Tag的設(shè)計是非常原始的, 基本上就是在字符串層面上進行操作, 在運行的時候缺乏對頁面結(jié)構(gòu)強有力的控制. 實際上, 在我看來, 所有基于jsp tag的技術(shù)都受制于jsp tag的先天的局限性, 很難有深度的發(fā)展, 包括JSF技術(shù).
           
          主站蜘蛛池模板: 万载县| 乾安县| 南漳县| 开远市| 东平县| 泽州县| 内黄县| 夹江县| 吉安市| 平邑县| 永州市| 察隅县| 昭苏县| 辽宁省| 衡山县| 丹江口市| 邛崃市| 荆州市| 长乐市| 涟水县| 河北省| 普兰县| 安化县| 辉南县| 永昌县| 昌乐县| 枣强县| 巴中市| 丰镇市| 江门市| 太仆寺旗| 商洛市| 灵宝市| 南郑县| 南皮县| 安福县| 宣城市| 禹城市| 宁德市| 安阳市| 上栗县|