[flask 優化] 由flask-bootstrap,flask-moment引發的訪問速度慢的緣由及解決辦法

一週時間快速閱讀了400頁的《javascript基礎教程》,理解了主要概念。解決了一個好久以前的疑問。javascript

個人網站是使用flask框架搭建的,介紹flask web的一本著名的書(以前提到過)做者搭建我的博客時,向讀者推薦了flask-bootstrap,flask_moment這兩個庫,前者能快速的解決前端樣式問題,後者提供了時間戳功能。css

但在某種狀況下,好比網絡延遲或者運營商的問題,訪問網站速度很是慢,狀態欄提示「從cdnjs.cloudflare.com傳輸文件」,這說明某一部分調用了外部連接,打開firefox的開發者工具在網絡標籤能夠看到:正在從網絡上獲取moment.js或者bootstrap.js,地址是cdnjs.cloudflare.com,應該換掉這些慢的資源,讓網站加載更快。html

如圖第六條是調用flask-moment從國外cdn加載的js文件:前端

有兩種辦法解決這個問題:html5

一、把那些加載很慢的js文件下載後放到網站的服務器上,從服務器加載js文件java

二、從速度較快的其餘國內cdn加載js文件jquery

選擇第二種辦法,在項目環境下site-packages文件中,找到bootstrap文件下的init文本,修改下面的地址爲:web

bootstrap = lwrap(
    WebCDN('//cdn.bootcss.com/bootstrap/%s/' % BOOTSTRAP_VERSION), local)

jquery = lwrap(
    WebCDN('//cdn.bootcss.com/jquery/%s/' % JQUERY_VERSION), local)

html5shiv = lwrap(
    WebCDN('//cdn.bootcss.com/html5shiv/%s/' % HTML5SHIV_VERSION))

respondjs = lwrap(
    WebCDN('//cdn.bootcss.com/respond.js/%s/' % RESPONDJS_VERSION))

找到moment.py文件,用如下地址替換其中cdn地址:(去掉版本號變量和%s,由於不一樣服務商的文件存儲路徑和版本號格式可能不同)flask

https://cdn.bootcss.com/moment.js/2.18.1/locale/af.js

而後重啓服務器,試一下訪問速度:(看最後一條:從cdn.bootcss.com獲取js文件,只有2.35kb,只需36毫秒。從國外cdn首次加載要一兩秒至十幾秒不等)bootstrap

 

這樣就避免了有些時候瀏覽器一直卡在獲取國外cdn數據的狀況。

 

參考資料:

https://zhuanlan.zhihu.com/p/23412590

相關文章
相關標籤/搜索