婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > prototype試用整理資料

prototype試用整理資料

熱門標(biāo)簽:澳大利亞城市地圖標(biāo)注 上海浦東騰訊地圖標(biāo)注位置 遼寧銀行智能外呼系統(tǒng) 辰溪地圖標(biāo)注 海南銀行智能外呼系統(tǒng)商家 遼寧正規(guī)電銷機(jī)器人 姜堰電銷機(jī)器人 電銷機(jī)器人違法了嗎 許昌智能電銷機(jī)器人公司
一直沒有沒有時(shí)間看prototype,現(xiàn)在好了,已經(jīng)更新到了1.5 pre1,呵呵,強(qiáng)大的功能不得不學(xué)習(xí)啊,這個(gè)是提升自己JS能力的又一個(gè)捷徑.

1. Prototype是什么?
或許你還沒有用過它, prototype.js 是一個(gè)由Sam Stephenson寫的JavaScript包。這個(gè)構(gòu)思奇妙編寫良好的一段兼容標(biāo)準(zhǔn)的一段代碼將承擔(dān)創(chuàng)造胖客戶端, 高交互性WEB應(yīng)用程序的重?fù)?dān)。輕松加入Web 2.0特性。

如果你最近體驗(yàn)了這個(gè)程序包,你很可能會(huì)發(fā)現(xiàn)文檔并不是它的強(qiáng)項(xiàng)之一。像所有在我之前的開發(fā)者一樣,我只能一頭扎進(jìn)prototype.js的源代碼中并且試驗(yàn)其中的每一個(gè)部分。 我想當(dāng)我學(xué)習(xí)他的時(shí)候記寫筆記然后分享給其他人將會(huì)很不錯(cuò)。

我也一起提供了這個(gè)包的對(duì)象,類,方法和擴(kuò)展的 非官方參考 。

2. 通用性方法
這個(gè)程序包里面包含了許多預(yù)定義的對(duì)象和通用性方法。編寫這些方法的明顯的目的就是為了減少你大量的重復(fù)編碼和慣用法。

從Prototype1.5.x版本開始,你可以更方便的如下面代碼一樣操作DOM對(duì)象了:

程序代碼 程序代碼

var ele = $("myelement");
ele.hide(); //隱藏DOM對(duì)象對(duì)比從前的版本var ele = $("myelement");
Element.hide(ele); //隱藏DOM對(duì)象


這樣的改變有什么益處呢? 我覺得一來是更面向?qū)ο罅耍砭褪潜阌趯鞩DE里的代碼提示。

2.1. 使用 $()方法
$() 方法是在DOM中使用過于頻繁的 document.getElementById() 方法的一個(gè)便利的簡(jiǎn)寫,就像這個(gè)DOM方法一樣,這個(gè)方法返回參數(shù)傳入的id的那個(gè)元素。

比起DOM中的方法,這個(gè)更勝一籌。你可以傳入多個(gè)id作為參數(shù)然后 $() 返回一個(gè)帶有所有要求的元素的一個(gè) Array 對(duì)象。下面的例子會(huì)向你描述這些。

程序代碼 程序代碼

HTML>
HEAD>
TITLE> Test Page /TITLE>
script src="prototype-1.3.1.js">/script>

script>
    function test1()
    {
        var d = $('myDiv');
        alert(d.innerHTML);
    }

    function test2()
    {
        var divs = $('myDiv','myOtherDiv');
        for(i=0; idivs.length; i++)
        {
            alert(divs[i].innerHTML);
        }
    }
/script>
/HEAD>

BODY>
    div id="myDiv">
        p>This is a paragraph/p>
    /div>
    div id="myOtherDiv">
        p>This is another paragraph/p>
    /div>

    input type="button" value=Test1 onclick="test1();">br>
    input type="button" value=Test2 onclick="test2();">br>

/BODY>
/HTML>


這個(gè)方法的另一個(gè)好處就是你可以傳入id字符串或者元素對(duì)象自己,這使得在創(chuàng)建可以傳入任何形式參數(shù)的方法的時(shí)候, 它變得非常有用。

2.2. 使用$F()方法
$F()方法是另一個(gè)非常受歡迎的簡(jiǎn)寫。它可以返回任何輸入表單控件的值,如文本框或下拉框。 這個(gè)方法可以傳入元素的id或者元素自己。

程序代碼 程序代碼

script>
    function test3()
    {
        alert(  $F('userName')  );
    }
/script>

input type="text" id="userName" value="Joe Doe">br>
input type="button" value=Test3 onclick="test3();">br>


2.3. 使用Try.these()方法
Try.these() 方法使得實(shí)現(xiàn)當(dāng)你想調(diào)用不同的方法直到其中的一個(gè)成功正常的這種需求變得非常容易, 他把一系列的方法作為參數(shù)并且按順序的一個(gè)一個(gè)的執(zhí)行這些方法直到其中的一個(gè)成功執(zhí)行,返回成功執(zhí)行的那個(gè)方法的返回值。

在下面的例子中, xmlNode.text在一些瀏覽器中好用,但是xmlNode.textContent在另一些瀏覽器中正常工作。 使用Try.these()方法我們可以得到正常工作的那個(gè)方法的返回值。

程序代碼 程序代碼

script>
function getXmlNodeValue(xmlNode){
    return Try.these(
        function() {return xmlNode.text;},
        function() {return xmlNode.textContent;)
        );
}
/script>


3. Ajax 對(duì)象
上面提到的共通方法非常好,但是面對(duì)它吧,它們不是最高級(jí)的那類東西。它們是嗎?你很可能自己編寫了這些甚至在你的腳本里面有類似功能的方法。但是這些方法只是冰山一角。

我很肯定你對(duì)prototype.js感興趣的原因很可能是由于它的AJAX能力。所以讓我們解釋當(dāng)你需要完成AJAX邏輯的時(shí)候,這個(gè)包如何讓它更容易。

Ajax 對(duì)象是一個(gè)預(yù)定義對(duì)象,由這個(gè)包創(chuàng)建,為了封裝和簡(jiǎn)化編寫AJAX 功能涉及的狡猾的代碼。 這個(gè)對(duì)象包含一系列的封裝AJAX邏輯的類。我們來看看它們的一些。

3.1. 使用 Ajax.Request類
如果你不使用任何的幫助程序包,你很可能編寫了整個(gè)大量的代碼來創(chuàng)建XMLHttpRequest對(duì)象并且異步的跟蹤它的進(jìn)程, 然后解析出響應(yīng) 然后處理它。當(dāng)你不需要支持多于一種類型的瀏覽器時(shí)你會(huì)感到非常的幸運(yùn)。

為了支持 AJAX 功能。這個(gè)包定義了 Ajax.Request 類。

假如你有一個(gè)應(yīng)用程序可以通過url http://yoursever/app/get_sales?empID=1234year=1998與服務(wù)器通信。它返回下面這樣的XML 響應(yīng)。

程序代碼 程序代碼

?xml version="1.0" encoding="utf-8" ?>
ajax-response>
    response type="object" id="productDetails">
        monthly-sales>
            employee-sales>
                employee-id>1234/employee-id>
                year-month>1998-01/year-month>
                sales>$8,115.36/sales>
            /employee-sales>
            employee-sales>
                employee-id>1234/employee-id>
                year-month>1998-02/year-month>
                sales>$11,147.51/sales>
            /employee-sales>
        /monthly-sales>
    /response>
/ajax-response>


用 Ajax.Request對(duì)象和服務(wù)器通信并且得到這段XML是非常簡(jiǎn)單的。下面的例子演示了它是如何完成的。

程序代碼 程序代碼

script>
    function searchSales()
    {
        var empID = $F('lstEmployees');
        var y = $F('lstYears');
        var url = 'http://yoursever/app/get_sales';
        var pars = 'empID=' + empID + 'year=' + y;
       var myAjax = new Ajax.Request(
                    url,
                    {method: 'get', parameters: pars, onComplete: showResponse}
                    );

    }

    function showResponse(originalRequest)
    {
        //put returned XML in the textarea
        $('result').value = originalRequest.responseText;
    }
/script>

select id="lstEmployees" size="10" onchange="searchSales()">
    option value="5">Buchanan, Steven/option>
    option value="8">Callahan, Laura/option>
    option value="1">Davolio, Nancy/option>
/select>
select id="lstYears" size="3" onchange="searchSales()">
    option selected="selected" value="1996">1996/option>
    option value="1997">1997/option>
    option value="1998">1998/option>
/select>
br>textarea id=result cols=60 rows=10 >/textarea>


你看到傳入 Ajax.Request構(gòu)造方法的第二個(gè)對(duì)象了嗎? 參數(shù){method: 'get', parameters: pars, onComplete: showResponse} 表示一個(gè)匿名對(duì)象的真實(shí)寫法。他表示你傳入的這個(gè)對(duì)象有一個(gè)名為 method 值為 'get'的屬性,另一個(gè)屬性名為 parameters 包含HTTP請(qǐng)求的查詢字符串,和一個(gè)onComplete 屬性/方法包含函數(shù)showResponse。

還有一些其它的屬性可以在這個(gè)對(duì)象里面定義和設(shè)置,如 asynchronous,可以為true 或 false 來決定AJAX對(duì)服務(wù)器的調(diào)用是否是異步的(默認(rèn)值是 true)。

這個(gè)參數(shù)定義AJAX調(diào)用的選項(xiàng)。在我們的例子中,在第一個(gè)參數(shù)通過HTTP GET命令請(qǐng)求那個(gè)url,傳入了變量 pars包含的查詢字符串, Ajax.Request 對(duì)象在它完成接收響應(yīng)的時(shí)候?qū)⒄{(diào)用showResponse 方法。

也許你知道, XMLHttpRequest在HTTP請(qǐng)求期間將報(bào)告進(jìn)度情況。這個(gè)進(jìn)度被描述為四個(gè)不同階段:Loading, Loaded, Interactive, 或 Complete。你可以使 Ajax.Request 對(duì)象在任何階段調(diào)用自定義方法 ,Complete 是最常用的一個(gè)。想調(diào)用自定義的方法只需要簡(jiǎn)單的在請(qǐng)求的選項(xiàng)參數(shù)中的名為 onXXXXX 屬性/方法中提供自定義的方法對(duì)象。 就像我們例子中的 onComplete 。你傳入的方法將會(huì)被用一個(gè)參數(shù)調(diào)用,這個(gè)參數(shù)是 XMLHttpRequest 對(duì)象自己。你將會(huì)用這個(gè)對(duì)象去得到返回的數(shù)據(jù)并且或許檢查包含有在這次調(diào)用中的HTTP結(jié)果代碼的 status 屬性。

還有另外兩個(gè)有用的選項(xiàng)用來處理結(jié)果。我們可以在onSuccess 選項(xiàng)處傳入一個(gè)方法,當(dāng)AJAX無誤的執(zhí)行完后調(diào)用, 相反的,也可以在onFailure選項(xiàng)處傳入一個(gè)方法,當(dāng)服務(wù)器端出現(xiàn)錯(cuò)誤時(shí)調(diào)用。正如onXXXXX 選項(xiàng)傳入的方法一樣,這兩個(gè)在被調(diào)用的時(shí)候也傳入一個(gè)帶有AJAX請(qǐng)求的XMLHttpRequest對(duì)象。

我們的例子沒有用任何有趣的方式處理這個(gè) XML響應(yīng), 我們只是把這段XML放進(jìn)了一個(gè)文本域里面。對(duì)這個(gè)響應(yīng)的一個(gè)典型的應(yīng)用很可能就是找到其中的想要的信息,然后更新頁面中的某些元素, 或者甚至可能做某些XSLT轉(zhuǎn)換而在頁面中產(chǎn)生一些HTML。

3.2. 使用 Ajax.Updater 類
如果你的服務(wù)器的另一端返回的信息已經(jīng)是HTML了,那么使用這個(gè)程序包中 Ajax.Updater 類將使你的生活變得更加得容易。用它你只需提供哪一個(gè)元素需要被AJAX請(qǐng)求返回的HTML填充就可以了,例子比我寫說明的更清楚。

程序代碼 程序代碼

script>
    function getHTML()
    {
        var url = 'http://yourserver/app/getSomeHTML';
        var pars = 'someParameter=ABC';

         var myAjax = new Ajax.Updater('placeholder', url, {method: 'get', parameters: pars});

    }
/script>

input type=button value=GetHtml onclick="getHTML()">
div id="placeholder">/div>


你可以看到,這段代碼比前面的例子更加簡(jiǎn)潔,不包括 onComplete 方法,但是在構(gòu)造方法中傳入了一個(gè)元素id。 我們來稍稍修改一下代碼來描述如何在客戶端處理服務(wù)器段錯(cuò)誤成為可能。

我們將加入更多的選項(xiàng), 指定處理錯(cuò)誤的一個(gè)方法。這個(gè)是用 onFailure 選項(xiàng)來完成的。

我們也指定了一個(gè) placeholder 只有在成功請(qǐng)求之后才會(huì)被填充。為了完成這個(gè)目的我們修改了第一個(gè)參數(shù)從一個(gè)簡(jiǎn)單的元素id到一個(gè)帶有兩個(gè)屬性的對(duì)象, success (一切OK的時(shí)候被用到) 和 failure (有地方出問題的時(shí)候被用到) 在下面的例子中沒有用到failure屬性,而僅僅在 onFailure 處使用了 reportError 方法。

程序代碼 程序代碼

script>
    function getHTML()
    {
        var url = 'http://yourserver/app/getSomeHTML';
        var pars = 'someParameter=ABC';
        var myAjax = new Ajax.Updater(
                    {success: 'placeholder'},
                    url,
                    {method: 'get', parameters: pars, onFailure: reportError});

    }

    function reportError(request)
    {
        alert('Sorry. There was an error.');
    }
/script>

input type=button value=GetHtml onclick="getHTML()">
div id="placeholder">/div>



如果你的服務(wù)器邏輯是返回JavaScript 代碼而不是單純的 HTML 標(biāo)記, Ajax.Updater對(duì)象可以執(zhí)行那段JavaScript代碼。為了使這個(gè)對(duì)象對(duì)待響應(yīng)為JavaScript,你只需在最后參數(shù)的對(duì)象構(gòu)造方法中簡(jiǎn)單加入evalScripts: true屬性。

prototype學(xué)習(xí)資料包括:
prototype14參考
prototype 1.3 源碼解讀.txt
prototype 1.5 參考圖
prototype 1.5pre1.js
prototype 1.4.js
點(diǎn)這里下載

標(biāo)簽:銅川 威海 伊春 晉城 崇左 撫州 深圳 西藏

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《prototype試用整理資料》,本文關(guān)鍵詞  prototype,試用,整理,資料,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《prototype試用整理資料》相關(guān)的同類信息!
  • 本頁收集關(guān)于prototype試用整理資料的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    26uuu精品一区二区在线观看| 成人免费毛片片v| 国产精品系列在线播放| 国产一区二区三区观看| 色哟哟国产精品| 精品av久久707| 亚洲一区二区三区自拍| 国产精品影视在线观看| 欧美日韩激情一区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品影音先锋| 欧美精三区欧美精三区| 国产精品乱码久久久久久| 天天爽夜夜爽夜夜爽精品视频| 国产高清久久久| 欧美大黄免费观看| 首页国产欧美日韩丝袜| 色婷婷精品大视频在线蜜桃视频| 国产亚洲欧美日韩在线一区| 亚洲bt欧美bt精品777| av不卡在线观看| 国产午夜精品一区二区三区视频| 婷婷久久综合九色综合绿巨人| 成人动漫一区二区在线| 久久―日本道色综合久久| 奇米在线7777在线精品| 欧美狂野另类xxxxoooo| 亚洲国产婷婷综合在线精品| bt欧美亚洲午夜电影天堂| 久久久影视传媒| 国产精品91一区二区| 久久婷婷久久一区二区三区| 麻豆91精品91久久久的内涵| 欧美丰满嫩嫩电影| 日本欧美加勒比视频| 6080日韩午夜伦伦午夜伦| 五月激情综合婷婷| 欧美日韩久久久久久| 亚洲国产精品久久人人爱蜜臀| 在线观看网站黄不卡| 一区二区三区中文字幕电影| eeuss鲁片一区二区三区| 日本一区二区高清| 91网站最新地址| 夜夜精品浪潮av一区二区三区 | 国产成人精品免费在线| 久久久国产精品不卡| 国产91清纯白嫩初高中在线观看| 国产精品美女一区二区三区| 成人爱爱电影网址| 一区二区三区自拍| 欧美精品亚洲一区二区在线播放| 人妖欧美一区二区| 精品国产1区二区| 成人免费视频播放| 亚洲欧美日韩久久| 欧美片网站yy| 国产剧情一区二区| 中文字幕一区二区在线观看| 91久久精品一区二区二区| 日韩中文字幕av电影| 国产夜色精品一区二区av| 99精品久久只有精品| 一区二区三区精品久久久| 欧美一区二区三区系列电影| 久久精品二区亚洲w码| 国产女人aaa级久久久级| 色丁香久综合在线久综合在线观看| 视频一区中文字幕| 国产校园另类小说区| 色婷婷综合中文久久一本| 免费精品视频在线| 国产精品福利电影一区二区三区四区 | 国内成人精品2018免费看| 国产精品全国免费观看高清| 欧美日韩精品电影| 国产电影一区在线| 亚洲地区一二三色| 国产精品免费视频一区| 欧美一区二区在线免费观看| 99精品在线免费| 久久av中文字幕片| 一个色综合网站| 国产精品嫩草影院com| 欧美一区2区视频在线观看| 成人精品在线视频观看| 青青草国产精品97视觉盛宴 | 欧美一区二区三区小说| 色94色欧美sute亚洲13| 国产成人精品一区二| 亚洲一区二区成人在线观看| 中文字幕精品一区二区三区精品| 91精品国产色综合久久不卡电影 | 国产成人av一区二区三区在线 | 久久激五月天综合精品| 亚洲成人午夜影院| 亚洲女爱视频在线| 国产精品免费网站在线观看| 久久久久久久av麻豆果冻| 欧美精三区欧美精三区| 欧美影院一区二区三区| 91在线国产观看| 本田岬高潮一区二区三区| 国产精品一区二区在线观看不卡 | 欧美精品一区男女天堂| 日韩欧美国产高清| 91精品婷婷国产综合久久竹菊| 一本高清dvd不卡在线观看| 99天天综合性| 不卡在线观看av| 高清不卡一二三区| 国产成人av影院| 成人自拍视频在线观看| 国产大陆a不卡| 成人一区二区三区视频在线观看 | 91蜜桃网址入口| 91蜜桃免费观看视频| 色诱视频网站一区| 欧美中文字幕亚洲一区二区va在线 | 国产一区二区三区四| 狠狠色狠狠色综合| 激情另类小说区图片区视频区| 日韩精品亚洲专区| 麻豆91在线看| 国产iv一区二区三区| 丁香亚洲综合激情啪啪综合| 成人三级伦理片| 在线视频欧美区| 欧美精品久久99久久在免费线| 69堂国产成人免费视频| 精品久久一二三区| 国产午夜三级一区二区三| 中文字幕成人av| 又紧又大又爽精品一区二区| 亚洲一区二区四区蜜桃| 图片区小说区区亚洲影院| 美女一区二区三区在线观看| 国产成人aaaa| 欧美日韩亚洲综合在线| 日韩丝袜美女视频| 国产精品免费网站在线观看| 亚洲乱码中文字幕综合| 琪琪一区二区三区| 成人国产精品免费网站| 欧美日韩午夜在线视频| 精品国产乱码久久久久久1区2区| 国产人久久人人人人爽| 亚洲第一在线综合网站| 国产成a人亚洲| 欧美欧美午夜aⅴ在线观看| 久久这里只有精品6| 1区2区3区精品视频| 日韩高清不卡在线| jvid福利写真一区二区三区| 6080国产精品一区二区| 国产精品污www在线观看| 同产精品九九九| 成人激情综合网站| 67194成人在线观看| 中文字幕一区二区三区不卡 | 久久亚洲精品小早川怜子| 一区二区在线观看视频| 国产精品一区一区| 欧美肥胖老妇做爰| 亚洲人成网站色在线观看| 精品在线视频一区| 欧美蜜桃一区二区三区| 国产精品三级视频| 国产精品中文字幕欧美| 日韩欧美精品三级| 亚洲一区二区三区中文字幕在线| 国产福利一区二区三区在线视频| 欧美欧美欧美欧美首页| 亚洲伦理在线免费看| 成人免费黄色大片| 久久毛片高清国产| 美洲天堂一区二卡三卡四卡视频| 欧美视频中文字幕| 亚洲欧美激情一区二区| 丁香亚洲综合激情啪啪综合| 欧美成人女星排行榜| 视频一区中文字幕国产| 欧美色区777第一页| 一区二区三区av电影| a级精品国产片在线观看| 国产农村妇女毛片精品久久麻豆| 免费xxxx性欧美18vr| 欧美精选一区二区| 日韩二区三区四区| 91麻豆精品国产综合久久久久久| 一二三区精品福利视频| 欧美影视一区二区三区| 一区二区三区不卡在线观看| 972aa.com艺术欧美| 国产精品水嫩水嫩| 99久久er热在这里只有精品15 | 国产欧美一二三区| 风间由美一区二区av101| 欧美激情一区二区三区蜜桃视频 | 欧美日韩国产bt|