成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS高程筆記 - ajax

I_Am / 2285人閱讀

摘要:假如你只想支持及更高版本那么大可丟掉前面定義的那個(gè)函數(shù)而只用原生的實(shí)現(xiàn)。跳過(guò)這個(gè)函數(shù)中新增的代碼首先檢測(cè)原生對(duì)象是否存在如果存在則返回它的新實(shí)例。如果原生對(duì)象不存在則檢測(cè)對(duì)象。如果這兩種對(duì)象都不存在就拋出一個(gè)錯(cuò)誤。

XMLHttpRequest 對(duì)象

IE7+、Firefox、Opera、Chrome 和 Safari 都支持原生的 XHR 對(duì)象,在這些瀏覽器中創(chuàng)建 XHR 對(duì)象要像下面這樣使用 XMLHttpRequest 構(gòu)造函數(shù)。

var xhr = new XMLHttpRequest();

假如你只想支持 IE7 及更高版本,那么大可丟掉前面定義的那個(gè)函數(shù),而只用原生的 XHR 實(shí)現(xiàn)。但是,如果你必須還要支持 IE 的早期版本,那么則可以在這個(gè) createXHR()函數(shù)中加入對(duì)原生 XHR對(duì)象的支持。

function createXHR() {
    if (typeof XMLHttpRequest != "undefined") {
        return new XMLHttpRequest();
    } else if (typeof ActiveXObject != "undefined") {
        if (typeof arguments.callee.activeXString != "string") {
            var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"],
                    i, len;
            for (i = 0, len = versions.length; i < len; i++) {
                try {
                    new ActiveXObject(versions[i]);
                    arguments.callee.activeXString = versions[i];
                    break;
                } catch (ex) {
                    //跳過(guò)
                }
            }
        }
        return new ActiveXObject(arguments.callee.activeXString);
    } else {
        throw new Error("No XHR object available.");
    }
}
var xhr = createXHR();

這個(gè)函數(shù)中新增的代碼首先檢測(cè)原生 XHR 對(duì)象是否存在,如果存在則返回它的新實(shí)例。如果原生對(duì)象不存在,則檢測(cè)ActiveX 對(duì)象。如果這兩種對(duì)象都不存在,就拋出一個(gè)錯(cuò)誤。然后,就可以使用下面的代碼在所有瀏覽器中創(chuàng)建 XHR 對(duì)象了。

var xhr = createXHR();

由于其他瀏覽器中對(duì) XHR 的實(shí)現(xiàn)與 IE 最早的實(shí)現(xiàn)是兼容的,因此就可以在所有瀏覽器中都以相同方式使用上面創(chuàng)建的 xhr 對(duì)象。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84710.html

相關(guān)文章

  • javascript高程3 學(xué)習(xí)筆記(二)

    摘要:的理解函數(shù)與其他語(yǔ)言函數(shù)最大的不同在于,其不介意傳入多少參數(shù)以及參數(shù)的類型比如函數(shù)的形參有兩個(gè),但是調(diào)用函數(shù)傳入的參數(shù)可以寫一個(gè),三個(gè)或不寫參數(shù)對(duì)應(yīng)等,解析器都可以正常解析,這是因?yàn)橹袇?shù)在內(nèi)部是以一個(gè)數(shù)組形式來(lái)表示,故而不需要關(guān)系傳入?yún)?shù) ECMAScript function的理解 ECMAScript 函數(shù)與其他語(yǔ)言函數(shù)最大的不同在于,其不介意傳入多少參數(shù)以及參數(shù)的類型...

    JerryWangSAP 評(píng)論0 收藏0
  • 讀“js高程筆記

    showImg(http://img3.douban.com/lpic/s8958650.jpg); 0x00 javascript組成 ECMAScript(-265)核心語(yǔ)言部分 DOM文檔對(duì)象模型(DOM1、2、3) BOM瀏覽器對(duì)象模型(提供與瀏覽器交互的接口和方法) 0x01 async 異步加載 執(zhí)行順序不定 charset defer 延遲加載,立即下載腳本但不執(zhí)行 src ...

    CollinPeng 評(píng)論0 收藏0
  • 筆記-js高程-第七章 函數(shù)表達(dá)式

    摘要:函數(shù)聲明提升定義函數(shù)有兩種方式函數(shù)聲明函數(shù)表達(dá)式報(bào)錯(cuò),該函數(shù)不存在上述代碼出現(xiàn)不同的執(zhí)行結(jié)果,是因?yàn)楹瘮?shù)聲明的一個(gè)重要特征函數(shù)聲明提升,意思是函數(shù)聲明會(huì)被提升到頂部,即首先讀取函數(shù)聲明。 函數(shù)聲明提升 定義函數(shù)有兩種方式: 函數(shù)聲明 sayName(123);//123 function sayName(name){ alert(name); } 函數(shù)表達(dá)式 sayName(1...

    source 評(píng)論0 收藏0
  • JS高程筆記 - 繼承

    摘要:下面來(lái)看一個(gè)例子繼承屬性繼承方法在這個(gè)例子中構(gòu)造函數(shù)定義了兩個(gè)屬性和。組合繼承最大的問(wèn)題就是無(wú)論什么情況下都會(huì)調(diào)用兩次超類型構(gòu)造函數(shù)一次是在創(chuàng)建子類型原型的時(shí)候另一次是在子類型構(gòu)造函數(shù)內(nèi)部。 組合繼承 組合繼承(combination inheritance),有時(shí)候也叫做偽經(jīng)典繼承,指的是將原型鏈和借用構(gòu)造函數(shù)的技術(shù)組合到一塊,從而發(fā)揮二者之長(zhǎng)的一種繼承模式。其背后的思路是使用原型鏈...

    fsmStudy 評(píng)論0 收藏0
  • javascript高程3 學(xué)習(xí)筆記(一)

    摘要:元素,當(dāng)瀏覽器不支持腳本數(shù)據(jù)結(jié)構(gòu)有如下中基本數(shù)據(jù)結(jié)構(gòu)操作符,用來(lái)檢測(cè)給定變量的數(shù)據(jù)類型結(jié)果都是,聲明沒(méi)初始化,使用生命變量但未對(duì)其進(jìn)行初始化的,默認(rèn)沒(méi)有進(jìn)行聲明,傳遞給函數(shù)會(huì)導(dǎo)致一個(gè)錯(cuò)誤,對(duì)于未聲明變量這么操作沒(méi)什么意義比如,也是返回。 javascript簡(jiǎn)史 微軟IE和網(wǎng)景在瀏覽器上的競(jìng)爭(zhēng) ECMAScript,由ECMA-262定義,提供核心語(yǔ)言功能 `ECMA 歐洲計(jì)算機(jī)制...

    you_De 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<