一周時間快速閱讀了400頁的《javascript基礎教程》,理解了主要概念。解決了一個很久之前的疑問。
我的網站是使用flask框架搭建的,介紹flask web的一本著名的書(之前提到過)作者搭建個人博客時,向讀者推薦了flask-bootstrap,flask_moment這兩個庫,前者能快速的解決前端樣式問題,后者提供了時間戳功能。
但在某種情況下,比如網絡延遲或者運營商的問題,訪問網站速度非常慢,狀態欄提示“從cdnjs.cloudflare.com傳輸文件”,這說明某一部分調用了外部鏈接,打開firefox的開發者工具在網絡標簽可以看到:正在從網絡上獲取moment.js或者bootstrap.js,地址是cdnjs.cloudflare.com,應該換掉這些慢的資源,讓網站加載更快。
如圖第六條是調用flask-moment從國外cdn加載的js文件:
有兩種辦法解決這個問題:
1、把那些加載很慢的js文件下載后放到網站的服務器上,從服務器加載js文件
2、從速度較快的其他國內cdn加載js文件
選擇第二種辦法,在項目環境下site-packages文件中,找到bootstrap文件下的init文本,修改下面的地址為:
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,因為不同服務商的文件存儲路徑和版本號格式可能不一樣)
https://cdn.bootcss.com/moment.js/2.18.1/locale/af.js
然后重啟服務器,試一下訪問速度:(看最后一條:從cdn.bootcss.com獲取js文件,只有2.35kb,只需36毫秒。從國外cdn首次加載要一兩秒至十幾秒不等)
這樣就避免了有些時候瀏覽器一直卡在獲取國外cdn數據的情況。
參考資料:
https://zhuanlan.zhihu.com/p/23412590