最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中的惰性載入函數(shù)及優(yōu)勢(shì)

 更新時(shí)間:2020年02月18日 15:59:53   作者:繁華落燼,戲命如詩  
這篇文章主要介紹了JavaScript中的惰性載入函數(shù)及優(yōu)勢(shì),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

定義

惰性載入函數(shù)表示函數(shù)執(zhí)行的分支僅會(huì)發(fā)生一次,有兩種實(shí)現(xiàn)惰性載入函數(shù)的方式,第一種是在函數(shù)被調(diào)用時(shí)再處理,在第一次調(diào)用中,該函數(shù)會(huì)覆蓋為另外一個(gè)按合適方式執(zhí)行的函數(shù),這樣任何對(duì)函數(shù)的調(diào)用都不用再經(jīng)過執(zhí)行的分支了。第二種實(shí)現(xiàn)惰性載入的方式是在聲明函數(shù)時(shí)就制定適當(dāng)?shù)暮瘮?shù),這樣,第一次調(diào)用函數(shù)時(shí)就不會(huì)損失性能了,而在代碼首次加載時(shí)會(huì)損失一點(diǎn)兒性能。

功能

由于現(xiàn)在瀏覽器之間的差異,為了實(shí)現(xiàn)跨瀏覽器工作,很多函數(shù)要書寫大量if語句或者try…catch…語句。當(dāng)每次調(diào)用函數(shù)時(shí),都要對(duì)每個(gè)if分支或try語句進(jìn)行檢查,這樣會(huì)使得瀏覽器反應(yīng)變慢。實(shí)際上,當(dāng)我們用某個(gè)瀏覽器打開網(wǎng)頁時(shí),就決定了某個(gè)if分支或try語句是可用的,沒有必要每次調(diào)用都檢查。為了解決以上問題,JavaScript中出現(xiàn)一種名為惰性載入的技巧。

示例

載入方式一

var flag = 1;
function test1() { 
if(typeof flag === 'undefined') { 
test1 = function() {  
return 0; 
} 
} else if(flag === 1) { 
test1 = function() {  
return 1; 
} 
} else { 
test1 = function () {  
return -1; 
} 
} 
return test1();
}

這里if語句的每個(gè)分支都會(huì)為test1變量賦值,有效覆蓋了原有的函數(shù),最后一步便是調(diào)用新賦的函數(shù),下一次調(diào)用test1()的時(shí)候就會(huì)直接調(diào)用被分配的函數(shù),就不會(huì)再走if語句了,這樣就可以提高性能。

載入方式二

var flag = 1;
var test2 = (function() { 
if(typeof flag === 'undefined') { 
return function() {  
return 0; 
} 
} else if(flag === 1) { 
 return function () {  
 return 1; 
 } 
 } else { 
 return function () {  
 return -1; 
 } 
 }
 })();

不同點(diǎn)是使用了立即執(zhí)行函數(shù),通過var來定義函數(shù),在每個(gè)if分支中return一個(gè)函數(shù)。

優(yōu)勢(shì)

惰性載入函數(shù)有兩個(gè)主要優(yōu)點(diǎn),第一是顯而易見的效率問題,雖然在第一次執(zhí)行的時(shí)候函數(shù)會(huì)意味賦值而執(zhí)行的慢一些,但是后續(xù)的調(diào)用會(huì)因?yàn)楸苊獾闹貜?fù)檢測(cè)更快;第二個(gè)是要執(zhí)行的適當(dāng)代碼只有當(dāng)實(shí)際調(diào)用函數(shù)是才執(zhí)行,很多JavaScript庫在在加載的時(shí)候就根據(jù)瀏覽器不同而執(zhí)行很多分支,把所有東西實(shí)現(xiàn)設(shè)置好,而惰性載入函數(shù)將計(jì)算延遲,不影響初始腳本的執(zhí)行時(shí)間。

總結(jié)

以上所述是小編給大家介紹的JavaScript中的惰性載入函數(shù)及優(yōu)勢(shì),希望對(duì)大家有所幫助,也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • BootStrap組件之進(jìn)度條的基本用法

    BootStrap組件之進(jìn)度條的基本用法

    bootstrap組件在前端開發(fā)中經(jīng)常會(huì)用到,今天小編通過本文給大家分享bootstrap組件之進(jìn)度條的基本用法,需要的朋友參考下吧
    2017-01-01
  • Blazor實(shí)現(xiàn)微信的Tab切換功能

    Blazor實(shí)現(xiàn)微信的Tab切換功能

    這篇文章主要介紹了Blazor實(shí)現(xiàn)微信的Tab切換功能,本文中的UI組件使用的是MASA?Blazor,您也可以是其他的UI框架,這個(gè)并不影響實(shí)際的運(yùn)行效果,本文案例是兼容PC和Android的,演示效果是android中執(zhí)行的,在PC中執(zhí)行效果依然有效,需要的朋友可以參考下
    2023-01-01
  • JavaScript使用setInterval()函數(shù)實(shí)現(xiàn)簡(jiǎn)單輪詢操作的方法

    JavaScript使用setInterval()函數(shù)實(shí)現(xiàn)簡(jiǎn)單輪詢操作的方法

    這篇文章主要介紹了JavaScript使用setInterval()函數(shù)實(shí)現(xiàn)簡(jiǎn)單輪詢操作的方法,以實(shí)例形式分析了輪詢操作的原理與javascript實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-02-02
  • javascript實(shí)現(xiàn)3D變換的立體圓圈實(shí)例

    javascript實(shí)現(xiàn)3D變換的立體圓圈實(shí)例

    這篇文章主要介紹了javascript實(shí)現(xiàn)3D變換的立體圓圈效果,涉及javascript動(dòng)態(tài)操作頁面元素實(shí)現(xiàn)滾動(dòng)與變色的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • javascript將url解析為json格式的兩種方法

    javascript將url解析為json格式的兩種方法

    本篇文章主要介紹了javascript將url解析為json格式的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Uniapp實(shí)現(xiàn)下拉刷新的三種方式

    Uniapp實(shí)現(xiàn)下拉刷新的三種方式

    在小程序、h5等地方中,常常會(huì)用到下拉刷新這個(gè)功能,今天來講解實(shí)現(xiàn)這個(gè)功能的三種方式:全局下拉刷新,組件局部下拉刷新,嵌套組件下拉刷新,,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • javascript實(shí)用小函數(shù)使用介紹

    javascript實(shí)用小函數(shù)使用介紹

    本文整理了一些實(shí)用小函數(shù)如阻止輸入非數(shù)字,backspace除外;限制輸入最大字符串長(zhǎng)度等,需要的朋友可以了解下
    2013-11-11
  • Threejs實(shí)現(xiàn)滴滴官網(wǎng)首頁地球動(dòng)畫功能

    Threejs實(shí)現(xiàn)滴滴官網(wǎng)首頁地球動(dòng)畫功能

    這篇文章主要介紹了Threejs實(shí)現(xiàn)滴滴官網(wǎng)首頁地球動(dòng)畫效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • JavaScript 函數(shù)的執(zhí)行過程

    JavaScript 函數(shù)的執(zhí)行過程

    下面小編就為大家?guī)硪黄狫avaScript 函數(shù)的執(zhí)行過程。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • 微信小程序地理定位功能實(shí)現(xiàn)

    微信小程序地理定位功能實(shí)現(xiàn)

    小程序地理定位是指通過小程序開發(fā)平臺(tái)提供的?API,來獲取用戶的地理位置信息,用戶在使用小程序時(shí),可以授權(quán)小程序獲取自己的地理位置信息,下面通過本文給大家分享微信小程序地理定位功能實(shí)現(xiàn),感興趣的朋友一起看看吧
    2024-05-05

最新評(píng)論

蕉岭县| 万年县| 安顺市| 瓦房店市| 万州区| 百色市| 丹凤县| 新绛县| 屏边| 沧州市| 武平县| 寿阳县| 新源县| 清新县| 新余市| 托克逊县| 繁昌县| 麻城市| 嘉荫县| 西乌珠穆沁旗| 连云港市| 东兰县| 元朗区| 县级市| 灌阳县| 朝阳县| 衡阳市| 手机| 桃园市| 天门市| 易门县| 固原市| 虹口区| 黔西县| 黑水县| 金寨县| 靖远县| 海淀区| 绥芬河市| 嘉黎县| 宝兴县|