This Is A FineDay

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            93 隨筆 :: 0 文章 :: 69 評論 :: 0 Trackbacks

          ( ).Prototype 1.5 rc2) 使用指南之 array.js

          $A = Array.from(iterable): iterable 轉化為數組,如果 iterable 定義了 toArray 方法,就調用這個方法,否則利用 iterable length 屬性進行枚舉 , 如果 iterable 沒有 length 屬性的話就返回空數組 []

          Array 對象除了擴展 Enumerable 對象的方法外,另外擴展了如下的幾個方法,

          注意以下方法除了 clear 外都不改變原來數組,而是返回一個新數組:

          clear(): 清除數組,利用 arr.length=0

          first(): 返回第一個元素

          last() :返回最后一個元素

          compact(): 去除數組中值為 null undefined 的元素

          flatten(): 將數組扁平化,例如 [3,4,[6,7]] 變為 [3,4,6,7]

          without(): 去除指定的元素 , 可以指定多個值 , 例如 [4,56,7,8].without(4,7) 返回 [56 8]

          indexOf(object): 返回指定的元素在數組中的索引,不包含則返回 -1

          reverse(inline) Array 內置函數 reverse 的增強,當 inline true 時,跟內置的 reverse 函數效果一樣,改變原數組的值,否則不改變原來的值

          reduce(): 如果數組只有一個元素,則返回這個元素,否則返回數組本身

          uniq(): 返回沒有重復元素的數組

          clone(): 返回一個跟數組相同的數組, Array 中的 toArray 方法覆蓋了 Enumerable 中的 toArray 方法,指向了這個方法

          inspect(): 跟數組的 toString 方法類似,返回對象的字符串表示,例如 [2,3].inspect() 返回 "[2,3]"

          ( ).Prototype 1.5 rc2) 使用指南之 hash.js

          Hash 對象 ( 關聯數組 ) Prototype 新建的一個對象,要創建一個 Hash 對象可以調用 $H(object) 方法,使用這個方法將生成一個基于 object 對象的 Hash 對象,生成的 Hash 對象將 object 的屬性名作為 key ,將 object 的屬性值最為鍵值,因為 javascript 本身的特點 ( 對象本身就是關聯數組 ) ,所以實現 Hash 也很簡單, Prototype 中的 Hash 只是 javascript 的關聯數組 ( 對象 ) 而已

          Prototype 中的 Hash 對象繼承自 Enumerable 對象,所以也具有 Enumerable 對象的所有屬性和方法,另外它具有以下的方法:

          keys(): 返回 hash 的鍵值數組

          values(): 返回值得數組

          merge(hash): 合并兩個 hash

          toQueryString(): string toQueryParams 方法想法,將 hash 轉化為一個 querystring, 會調用 encodeURIComponent 對鍵和值進行編碼

          inspect(): hash 的字符串表示

          因為 hash 只是 javascript 的一個普通的對象而已,所以添加一個鍵值對使用: hash[key]=value 就可以了,刪除一個鍵值對使用 detele hash[key] 就可以了

          ( ).Prototype 1.5 rc2) 使用指南之 range.js

          Range 對象是一個繼承自 Enumerable " 范圍 " 對象,你可以把它看成 [x,x+1,x+2,x+3 …… x+n] 的數組看待,但是比這樣的數組更節省存儲空間,因為 range 對象只是保存 x x+n 而已

          要創建一個 Range 對象調用 $R(start, end, exclusive) 函數就可以了, exclusive 指定是否包含 end 本身,如果沒有指定或為 false 則包含 end ,否則不包含 , 你可以利用 Enumerable 中定義的方法來操作 range 對象, range 對象只是實現了 Enumerable 對象需要的枚舉邏輯 _each 和覆蓋了 include 方法而已

          ( ).Prototype 1.5 rc2) 使用指南之 ajax

          Prototype 中的 ajax.js 提供了一個非常好用的 ajax 框架,一般應用中簡單的調用以下代碼就可以了

          new Ajax.Request(

          ??? url, {method: “get”,

          ??? onSuccess: showFilter,

          ??? onFailure: function(request){alert(”Server error!”)},

          ??? onException: showError}

          ? );

          這個框架中提供了如下的對象和方法等:

          Ajax 對象:

          只有一個 getTransport 方法,返回一個 XMLHttpRequest 對象,另外有一個 activeRequestCount 屬性,反映當前正在處理的 ajax 數量

          Ajax.Responders 對象:

          繼承自 Enumerable ,管理全局 Ajax 的請求,具有如下方法

          register(responder) :注冊一個管理 ajax 請求的對象

          unregister(responder) :撤銷一個管理 ajax 請求的對象

          dispatch(callback, request, transport, json) :觸發注冊的處理對象的方法

          這個對象一般很少使用,系統中已經使用如下的代碼注冊了一個處理對象

          Ajax.Responders.register({

          ? onCreate: function() {

          ??? Ajax.activeRequestCount++;

          ? },

          ? onComplete: function() {

          ??? Ajax.activeRequestCount–;

          ? }

          });

          Ajax.Base 類:

          Ajax 的基類 , 只有一個方法 setOptions(options), 默認 request 參數如下,你可以在新建 Ajax.request 時指定:

          method:?????? 'post’,

          asynchronous: true,

          contentType:? 'application/x-www-form-urlencoded’,

          encoding:???? ' UTF-8 ,

          Ajax.Request 類:

          ajax 主要的類,繼承自 ajax.base 類,客戶端使用 new Ajax.Request(url,options) 調用, options 是一個對象 ( 關聯數組 ), options 中可以指定 method asynchronous contentType encoding parameters postBody username,password 等選項,其中 parameters 可以是字符傳或者關聯數組象,

          另外在 options 中還可以通過 requestHeaders 指定 request heads ,其中 requestHeaders 可以是數組 ( 例如 [ Connection , Close , aheadkey , aheadvalue ]) 或一個關聯數組;

          options 中最重要的選項就是指定 ajax 的回調方法,可以定義 onComplete, onSuccess, onFailure, onException( 執行過程中發生異常調用的方法,主要為 onComplete, onSuccess, onFailure 等回調方法產生的 ) ,甚至可以定義 on404,on503 這樣的回調方法,它們的參數為 (transport, json), 其中 transport 為請求的 XMLHttpRequest 對象 , json evalJSON 的結果

          如果返回的是一個 javascript 文件 ( 根據返回的 Content-type 頭判斷 ) 將會執行 evalResponse 方法,另外 Ajax.Request 對象還有一個 evalJSON 方法,取得文件的時候就會執行

          這個對象的方法列表如下:

          request(url) : 發送請求, new 的時候就已經調用了,所以一般不需要使用

          success(): 判斷 request 是否成功了

          getHeader(name) :根據 name 得到 request head

          evalJSON(): 執行 getHeader( X-JSON ), 并返回結果

          evalResponse(): 執行返回的 responseText 并返回

          Ajax.Updater :

          繼承自 Ajax.Request ,只是比 Ajax.Request 增加了更新 html 元素的功能,一般使用方法是 new Ajax.Updater(element, url, options), element 可以是一個元素,也可以是 {success:e1,failure:e2} 這種形式 ,

          默認情況下不會執行返回結果中的 javascript ,如果你先執行,你可以指定 options 中的 evalScripts true

          默認情況下是替換指定元素的內容,如果你希望是添加,可以指定 options insertion 參數 , insertion 是一個 Insertion.Before Insertion.Top Insertion.Bottom Insertion.After( 將在 dom.js 中介紹 )

          Ajax.PeriodicalUpdater :

          繼承自 Ajax.Base ,周期性的更新一個 html 元素的內容,這個類會調用 Ajax.Updater html 元素進行周期性的更新,使用方法為 new Ajax.PeriodicalUpdater(container, url, options), 參數跟 Ajax.Updater 差不多,其中 options 可以設置 frequency( 默認為 2) decay decay 指的是當請求的內容沒有變化的時候, frequency 需要延長的倍數,默認是 1 ,例如如果 decay 設為 2 frequency 設為 3 而內容一直沒有變化,則請求的時間依次會變為 3,6,12,24

          start(): 開始更新 , 初始化的時候會自動調用

          stop(): 停止更新
          posted on 2008-07-03 21:46 Peter Pan 閱讀(210) 評論(0)  編輯  收藏 所屬分類: JS
          主站蜘蛛池模板: 康平县| 手游| 大悟县| 新竹县| 津市市| 宁武县| 星子县| 石门县| 衡山县| 寿光市| 辰溪县| 孟州市| 建始县| 汝阳县| 静安区| 赤城县| 广河县| 铜梁县| 金昌市| 安仁县| 涞源县| 类乌齐县| 堆龙德庆县| 山阳县| 湘乡市| 奎屯市| 濮阳县| 敦煌市| 海兴县| 逊克县| 赤壁市| 香格里拉县| 裕民县| 乌拉特中旗| 阆中市| 旅游| 平定县| 呼和浩特市| 拜泉县| 河曲县| 湘西|