国产探花免费观看_亚洲丰满少妇自慰呻吟_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中的惰性載入函數及優勢,希望對大家有所幫助,也非常感謝大家對錯新站長站網站的支持!

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

圖片精選

主站蜘蛛池模板: 永修县| 浮梁县| 慈溪市| 冷水江市| 正宁县| 钟祥市| 遵化市| 从化市| 天祝| 昌图县| 慈溪市| 麻江县| 栾城县| 新泰市| 南汇区| 大丰市| 西丰县| 穆棱市| 黑山县| 乌鲁木齐市| 西安市| 奉新县| 拜泉县| 泗水县| 仁怀市| 晋中市| 内乡县| 新绛县| 周宁县| 鹤山市| 凌源市| 专栏| 阜平县| 灵丘县| 古田县| 都江堰市| 海淀区| 淳安县| 衡山县| 陕西省| 社会|