字體:小 中 大 | |
|
|
2020/12/23 00:09:46瀏覽1431|回應0|推薦5 | |
來嘴一下吧。 忘了哪本書寫的,古代的人,是先讓自己弄清楚,才讓別人明白,而現在的人,自己都弄不清楚了,卻希望能讓別人明白。 中國古代的智慧,到現代,也還是這樣吧。 半瓶水,一知半解,然後一心期待用自己都搞不清楚的什麼必殺技,特效藥,來解決問題創造奇蹟,這種情形,其實,現在也還是蠻常見的。 吹牛加詭辯,只要口頭上贏,就可以自我感覺良好了。 所以只要情況不妙,那就設法找個可以攻擊的稻草人,啊,都是那誰誰誰的錯,才會這樣,設法的逃避面對現實。 即使承認自己做得不好,往往也是挑個大題目,例如對管理啊,人性啊這些大題目掌握不夠,犯了每個人都會犯的錯,所以只要繼續在一些自己搞不清楚的神秘主題上裝裝樣子的努力一下,那就是什麼發憤改革了。 什麼?事情一樣不妙?唉,再找個可以攻擊的對象吧,反正都是they的錯唷! 所以說,我們可以把人分成兩大類。 一種是實在做事,能確實把事情做好的。 另一種就是全身都是嘴的那種人,自己搞不清楚,然後要別人搞清楚,總想著莫名其妙的絕招能變出奇蹟的一直做著白日夢。
其實想把事情做好,既簡單,但也需要很用心。 只要針對的是具體的問題,把目標弄清楚,再務實的一步一步來,用心就能把事情做好。 舉最近的一個例子來說好了。 我們逛網頁,特別是那種很多圖片的網頁,讀取的速度,應該蠻重要的吧? 弄了一個網頁,內容是後台動態設定,所以上面的商品數量是可以越加越多的。即使把圖片都做好壓縮,如果一個頁面上有上百張圖,那個頁面載入自然就會慢。 簡單算,一張圖50kb好了,如果有100張圖,那就是5MB。 4G高速網路可能也就三五秒的載入時間吧,還好吧。 但如果網路不是很暢通,那會怎樣? 等個十幾秒,還忍受得了的,就不是普通人了吧。 於是,有一種技術,叫做懶加載。 畢竟使用者不是用超大螢幕一口氣看整個畫面,手機或電腦螢幕一眼能看到的,也就那幾個商品罷了。 一打開就把全部圖片都載入,即使使用者可能根本不會看完,這就是一種很大的浪費。 而載入圖片的順序又不太受控制,可能先載入的,是現在還沒看到的,而當前畫面的圖片,可能還正在努力的加載中,而一片空白。 簡單說就是浪費與無效率。 而懶加載的概念也很簡單,就是看到哪,看到才載入圖片,那就可以減少浪費與提升體驗了。 所以呢,傻蛋就找現在是怎麼做的,然後找到一個瀏覽器的api,可以偵測圖片是否進入當前瀏覽範圍內。 然後,一開始把圖片的來源藏在另一個屬性裡面,讓圖片不加載,等進入視覺範圍事件觸發了,再把藏起來的圖片來源替換回來,進行圖片載入。 原理不難懂,寫來試試看。 喔,實驗結果,挺不錯,原本網頁要載入數百的圖片與各式檔案才能完成,做了懶加載,畫面上只有顯示10張圖,就真的只先載入那10張圖,隨著畫面往下捲動,才邊捲動邊載入。 反應時間快多了,不用瞎等,如果根本不想繼續看,也不會浪費網路頻寬去下載沒有要看的部分,很好喔。 然後,就大膽的上線嗎? 還是多測試看看吧。 嘿,還真的發現問題。 因為懶加載,所以圖片都是滑動到的時候才載入。 那會閃一下。 但可以讓整個載入速度體驗提升,還是值得吧。 但,當在不同網頁切換的時候,懶加載的設計,會變成每個頁面都會閃一下。 剛剛下載過的圖片已經在電腦或手機本地有緩存了,我們第一次瀏覽網頁時很慢,但之後反覆切換剛剛看過的網頁,就會變很快,因為不用重新下載。 用了懶加載後,一開始快,但若事後要反覆在不同頁面切來切去,那個閃一下,就會變得,非常非常的礙眼。 甚至會讓這個改善的效益,變得很微妙,甚至會覺得,好像反而體驗不流暢而下降的感覺。 什麼,這是必須的代價嗎? 只能選自己覺得哪個比較嚴重,選一個不嚴重的? 再上網找找,還真的有這個問題,以及解決問題的思路。 瀏覽器可以偵測是否已有某個緩存資源,或者說我們自己載入一張圖,我們自己也知道這張圖是否載入過。 那麼,在產生網頁的時候,懶加載的原理是圖片先不要載入,等到畫面顯示時才載入。 那只要判斷,如果這張圖剛剛才載入過,就直接載入,反正讀緩存不耗資源速度也快,省一個置換加載的工,只有沒載入過的圖,才做懶加載就好了。 原理還是很簡單,然後試著實作看看吧。 喔,改好了之後,頁面切換也變得和之前一樣滑順了,而懶加載效果也還在,第一次打開頁面也是看到哪載到哪,之前捲到過的地方就是滑順的顯示,之前沒載入過的地方第一次會捲到才下載,喔,很好唷! 故事結束了嗎? 還沒喔。 舊瀏覽器不支援新的那個,顯示時才觸發api的事件,不能懶加載。 對那些使用者來說,那是圖整個都不能顯示了,完全是慘死。 所以呢,還需要進一步的改善。 兩個方法,一個是找網路上人家做好的,對新api的支援方式,模擬出相同效果。 另外一個簡單一點,用舊瀏覽器的使用者反正很少,碰到這種不支援的,就不要懶加載讓它照舊全部載入就好了,這也是種取捨,反正影響不大。
嗯嗯,落落長的步驟,總算是讓圖片載入太慢讓網頁開啟時間太慢的這個問題得以改善了。 很複雜嗎? 是有點複雜,如果不是這領域的技術人員,可能看得會有一點吃力吧。 但,原理應該不難懂吧? 目標很明確,碰到問題,可以想方設法解決,而且原理也是可以理解掌握的。 這樣的過程中,學到的技巧,就是確實的,有用的經驗。 同樣的概念也可以舉一反三,在類似的情境時,用減少不必要浪費的思維做出類似的改善吧?
好,那反過來看,如果一開始,選擇的做法不同呢? 如果一開始就是,找一個懶加載套件,然後設法照使用說明掛上去就好了,那又如何? 可能,可以達成相同的效果。 省時省力,不用重複造輪子。 很多人用的套件,經過千錘百鍊,比自己實作的更好吧? 呵呵。 如果不知道原理的話,只是套用,就希望能發生作用,那麼,套用之後,到底有沒有生效,搞不好都不知道怎麼判斷喔! 碰到問題時呢,或許也只能拿掉不要用和忍受問題當作代價做選擇吧? 如果有什麼地方不夠好,喔,只能找找有沒有評價更好的套件,或看套件有沒有升級版而已吧。 重點是,這個過程,是學不到什麼的。 如果養成,不用深入理解這個技術是幹什麼的,只是很多人用,所以我也用,有用有加分,反正就是很厲害的東西就對了,這樣的習慣,又會怎樣? 那,會破壞獨立思考,以及務實的檢討改善的能力與態度。 會變得虛浮,不求甚解,求速效,流於表面那樣。 甚至連什麼是好什麼是問題的判斷能力,都有可能喪失。 大家都那樣做啊,所以那就是好的吧? 不要用沒人用的方法,才安全吧。 簡單說,這種要命的心態,會因此喪失創新的勇氣,以及務實面對問題,拆解問題與找出具體改善途徑的這種沉著態度,而無法累積基本功夫,忙,也很容易淪為瞎忙。
所以說,我們不能流於浮燥,必須要能沉住氣,務實的思考分析與面對問題,才能從中學到經驗與教訓,才能真正做到檢討改善,而不是滿口pdca但從來沒做出有意義的檢討改善那樣。 必須要自己真的理解的,才有辦法讓別人明白,也才有能力判斷好與壞,也才能找到有意義的改善方式。 社會越浮躁,我們反而越該戒慎恐懼喔,千萬不要流於形式表面,不然呢,事情永遠會脫離自己的期待,心反而會越來越慌,沒有天上掉下來的餡餅,就沒法好好過日子了。 真正實用的知識,是會伴隨著實踐而越來越精粹的,填鴨教育學的很多東西都是垃圾或低效率的東西,我們需要有沉著的態度,一次專注面對一個問題,然後確實具體的檢討改善之,這樣,才能學到經驗與得到提升吧。
嗯,這篇文章沒有影射什麼社會時事,所以不需要做甚麼聯想唷,想不出來才是正常的,純粹就是嘴一下而已,就這樣啦! |
|
( 不分類|不分類 ) |