国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript中的惰性載入函數及優勢

2024-05-06 15:44:37
字體:
來源:轉載
供稿:網友

定義

惰性載入函數表示函數執行的分支僅會發生一次,有兩種實現惰性載入函數的方式,第一種是在函數被調用時再處理,在第一次調用中,該函數會覆蓋為另外一個按合適方式執行的函數,這樣任何對函數的調用都不用再經過執行的分支了。第二種實現惰性載入的方式是在聲明函數時就制定適當的函數,這樣,第一次調用函數時就不會損失性能了,而在代碼首次加載時會損失一點兒性能。

功能

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

示例

載入方式一

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語句的每個分支都會為test1變量賦值,有效覆蓋了原有的函數,最后一步便是調用新賦的函數,下一次調用test1()的時候就會直接調用被分配的函數,就不會再走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;  }  } })();

不同點是使用了立即執行函數,通過var來定義函數,在每個if分支中return一個函數。

優勢

惰性載入函數有兩個主要優點,第一是顯而易見的效率問題,雖然在第一次執行的時候函數會意味賦值而執行的慢一些,但是后續的調用會因為避免的重復檢測更快;第二個是要執行的適當代碼只有當實際調用函數是才執行,很多JavaScript庫在在加載的時候就根據瀏覽器不同而執行很多分支,把所有東西實現設置好,而惰性載入函數將計算延遲,不影響初始腳本的執行時間。

總結

以上所述是小編給大家介紹的JavaScript中的惰性載入函數及優勢,希望對大家有所幫助,也非常感謝大家對錯新站長站網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 南靖县| 淮南市| 阿克陶县| 宝清县| 来宾市| 封开县| 乐亭县| 缙云县| 茶陵县| 万源市| 石门县| 遂溪县| 兰西县| 镇平县| 南宁市| 从化市| 故城县| 萨嘎县| 汝州市| 渝北区| 白山市| 江津市| 神木县| 鸡东县| 崇州市| 惠水县| 汉沽区| 台中县| 万年县| 平顶山市| 宜都市| 平舆县| 湘潭市| 吴江市| 呼伦贝尔市| 白朗县| 鲜城| 射阳县| 建始县| 鄢陵县| 郑州市|