国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

巧用代理設(shè)計模式(Proxy Design Pattern)改善前端圖片加載體驗

wenzi / 2551人閱讀

摘要:我們用一些前端框架的這個控件類去顯示圖片。如果直接調(diào)用控件類的代碼那么在這張具體的圖片真正加載到本地之前,上顯示一片空白,這個用戶體驗不好。

這篇文章介紹一種使用代理設(shè)計模式(Proxy Design Pattern)的方法來改善您的前端應(yīng)用里圖片加載的體驗。

假設(shè)我們的應(yīng)用里需要顯示一張尺寸很大的圖片,位于遠(yuǎn)端服務(wù)器。我們用一些前端框架的Image這個控件類去顯示圖片。如果直接調(diào)用控件類的代碼

image.setSrc("http://www.bigfile.gif"), 那么在這張具體的圖片真正加載到本地之前,UI上顯示一片空白,這個用戶體驗不好。

我們?nèi)粘I钪衅鋵嵰呀?jīng)能感覺到,很多優(yōu)秀的前端應(yīng)用,在加載大尺寸圖片或者執(zhí)行其他費時的后臺操作時,前臺都會有一些動畫效果。

今天我們就來動手做一個類似的效果出來。

有一個按鈕。點了之后,會觸發(fā)一張大尺寸圖片的加載。

在這張圖片的加載過程中,一直顯示一張本地的gif圖片作為加載動畫:

加載完畢后,動畫消失,實際圖片才顯示出來(4.1MB大)。

項目完整代碼在我github上:

https://github.com/i042416/Fi...

看一些關(guān)鍵步驟。

1. Image控件定義在XML視圖里,ID為jerryImage。我用的SAP UI5前端框架。大家只要領(lǐng)會了思路,可以容易地遷移到其他任何前端框架去。

id為jerryButton的button控件,點擊事件處理函數(shù)onPress:

2. 再看控制器的代碼:onPress執(zhí)行l(wèi)oadImageWithProxy。

loadImageWithProxy調(diào)用injectProxy,傳入的輸入?yún)?shù)image就是XML視圖里定義的Image控件。

在injectProxy里,代碼第30行創(chuàng)建了一個隱藏的Image代理對象,然后在第36行用真實的Image控件去顯示本地的gif文件,以在UI上顯示出動畫效果,然后第37行用隱藏的Image代理對象去悄悄地加載大尺寸文件,這件事情終端用戶并不知情。等到這個大尺寸圖片加載完畢后,Image代理對象的onload回調(diào)函數(shù)會被瀏覽器觸發(fā),此時再讓真實的Image控件把加載好的大尺寸文件顯示出來。 效果就實現(xiàn)了。

要獲取更多Jerry的原創(chuàng)技術(shù)文章,請關(guān)注公眾號"汪子熙"或者掃描下面二維碼:

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/98518.html

相關(guān)文章

  • 巧用代理設(shè)計模式(Proxy Design Pattern)改善前端圖片加載體驗

    摘要:我們用一些前端框架的這個控件類去顯示圖片。如果直接調(diào)用控件類的代碼那么在這張具體的圖片真正加載到本地之前,上顯示一片空白,這個用戶體驗不好。 這篇文章介紹一種使用代理設(shè)計模式(Proxy Design Pattern)的方法來改善您的前端應(yīng)用里圖片加載的體驗。 假設(shè)我們的應(yīng)用里需要顯示一張尺寸很大的圖片,位于遠(yuǎn)端服務(wù)器。我們用一些前端框架的Image這個控件類去顯示圖片。如果直接調(diào)用控...

    dackel 評論0 收藏0
  • 100行代碼讓您學(xué)會JavaScript原生的Proxy設(shè)計模式

    摘要:面向?qū)ο笤O(shè)計里的設(shè)計模式之代理模式,相信很多朋友已經(jīng)很熟悉了。代表當(dāng)前執(zhí)行方法的實例,即方法調(diào)用者。代表具體的方法名稱。現(xiàn)在我們再次調(diào)用,傳入構(gòu)造器返回的代理對象打印輸出,代理邏輯生效了和的一樣優(yōu)雅地實現(xiàn)了代理設(shè)計模式。 showImg(https://segmentfault.com/img/remote/1460000016760603);面向?qū)ο笤O(shè)計里的設(shè)計模式之Proxy(代理...

    txgcwm 評論0 收藏0
  • Design Patterns - Proxy Pattern(譯)

    摘要:在代理模式中,我們將創(chuàng)建一個對象,該對象在在接口中持有原始對象,以對外部提供它的功能。實現(xiàn)我們將創(chuàng)建一個接口并且創(chuàng)建具體類實現(xiàn)接口。 原文鏈接譯者:smallclover希望對你們有所幫助,謝謝閱讀! 設(shè)計模式-代理模式 在代理模式中,我們使用一個類來代表另一個類的功能。這種類型的設(shè)計模式屬于結(jié)構(gòu)型設(shè)計模式的一種。在代理模式中,我們將創(chuàng)建一個對象,該對象在在接口中持有原始對象,以對外部...

    mtunique 評論0 收藏0
  • JavaScript系列(四) - 收藏集 - 掘金

    摘要:函數(shù)式編程前端掘金引言面向?qū)ο缶幊桃恢币詠矶际侵械闹鲗?dǎo)范式。函數(shù)式編程是一種強調(diào)減少對程序外部狀態(tài)產(chǎn)生改變的方式。 JavaScript 函數(shù)式編程 - 前端 - 掘金引言 面向?qū)ο缶幊桃恢币詠矶际荍avaScript中的主導(dǎo)范式。JavaScript作為一門多范式編程語言,然而,近幾年,函數(shù)式編程越來越多得受到開發(fā)者的青睞。函數(shù)式編程是一種強調(diào)減少對程序外部狀態(tài)產(chǎn)生改變的方式。因此,...

    cfanr 評論0 收藏0
  • [譯] 如何運用新技術(shù)提升網(wǎng)頁速度和性能

    摘要:簡言之,我們認(rèn)為好的用戶體驗從快速的內(nèi)容傳輸開始,也就意味著性能美觀。每一步我們都在探討如何在獲得好的用戶體驗和保證設(shè)計美感的同時,最小化對性能的影響。字型子集設(shè)定到目前為止,子集設(shè)定是改善網(wǎng)頁字體性能最快的方式。 作者 Declan 原文鏈接 最近更新了我們的網(wǎng)站,它是經(jīng)過了設(shè)計上的全面驗收的。但實際上,作為軟件開發(fā)者,我們會注重很多技術(shù)相關(guān)的零碎的東西。我們的目標(biāo)是控制性能,注重性...

    zhoutk 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<