惰性載入

惰性載入（，又稱延遲載入、懶載入、無限捲動、瀑布流），是一種設計模式，被運用在軟體設計和網頁設計當中，对于网页界面，其特徵為使用者透過滑鼠或觸控，瀏覽頁面，直到頁面下方時，才會依照Javascript等程式碼，發出連線請求，自動下載載入更多內容於同一網頁，以減少網路頻寬與裝置負擔；有多數網站採用這項網頁設計，例如Google圖片搜索、Google+、Facebook、Twitter、Pinterest、Youtube、部分論壇等。部分新聞網站會接續載入其他與原內容不相關的其他內容於同一網頁，也有結合無限捲動和多頁，兩著特性的網頁設計，以便快速定位尋找內容。

此種設計的缺點是如果是比較後面的資料內容，就需要逐一等候載入，無法和傳統多頁式設計那樣，可以快速定位內容。

而对于数据结构而言，惰性載入是指从一个数据对象通过方法获得里面的一个属性对象时，这个对应对象实际并没有随其父数据对象创建时一起保存在运行空间中，而是在其读取方法第一次被调用时才从其他数据源中加载到运行空间中，这样可以避免过早地导入过大的数据对象但并没有使用的空间占用浪费。

 實現 
實現惰性載入的設計模式，有多種方式：

 惰性初始化 

private int myWidgetID;
private Widget myWidget = null;

public Widget MyWidget 
{
    get 
    {
        if (myWidget == null) 
        {
            myWidget = Widget.Load(myWidgetID);
        }
        return myWidget;
        /* 也可使用 C# 的 null 联合运算子 ?? (x ?? y 相当于 x != null ? x : y):
         * return myWidget = myWidget ?? Widget.Load(myWidgetID);
         */
    }
}

 Virtual proxy 
 Ghost 
 Value holder 
 jQuery的插件 
JavaScript函式庫──jQuery的一些插件，有提供無限捲動的功能，例如Infinite Scroll插件。

 參見 

 惰性求值

 參考來源 

Category:軟體設計模式