什么才是優(yōu)秀的用戶界面設計?

發(fā)布時間:2024-07-17
前端構建工具滿天飛的情景下,筆者也忍不住去搗鼓了一下,真正體驗一下nodejs帶來的魅力,經過一段時間規(guī)劃設計,終于將平臺工具搗鼓出來了。在里面也體驗了express, socket.io, grunt等node插件服務,使用很流暢,并且很好的完了我的基本需求(jscssimage的壓縮和自動部署功能)。
雖然基本功能完成,但是還有一個讓人容易忽略而又重要的問題來了,就是資源文件的版本號的問題。在這里用的是seajs來做的模塊管理,也在網上搜集了一下關于這塊的資料。大致有以下兩種方案:
1、 配置seajs的map對象。很方便,集中管理,但是也存在一些問題,比如:map對象的維護、配置文件引用頁面的時間戳問題。
2、 生成文件sign,替換原有文件的名。這里不用考慮頁面引用的時間戳問題,但是需要對資源及頁面做一次全文查找替換,這對于分散部署的情況下將會非常復雜。
看了上面兩種方案后,感覺在我的場景下還存在一些不足之處。筆者想要的是不影響開發(fā)情況下,開發(fā)人員完全不用考慮文件被緩存問題,只需完成編碼,提交到構建系統后,一鍵完成構建和部署。
確定好目標后,既然不想讓開發(fā)同學關心時間戳問題,那么是否可以將這個工作交給web服務器來做呢?那么交給服務器來做之后,如何動態(tài)的更新最新的資源文件呢?
有問題就好解決,將問題拋出來之后,方案也漸進呈現出來,不啰嗦了,直接上筆者的實現方案:
構建工具動態(tài)生成.htaccess文件,將構建的資源文件的url重寫列表同步到.htaccess文件中以達到由服務器動態(tài)獲取新的資源文件。
(備注:筆者是在apache環(huán)境下,對iisnginxtomcatresinjboss等環(huán)境還需要再研究研究。)
看了上面的方案是不是很簡單,那具體是怎么做的呢?筆者也在這里列一下。
1. 構建工具在構的時候生成一個與filename.ext對應的filename.ext.sha1的文件,這個.sha1的文件存放filename.ext文件的sha1值。
2. 在構建完成后,構建工具讀取.htaccess的模板,并且遍歷得到所有資源文件的列表,生成一個對filename.ext對應的filename.ext.sign的文件。
3. 按規(guī)則生成rewritecond和rewriterule。并將規(guī)則數據寫到.htaccess文件中并部署到資源文件站點的根據目錄。
圖一:構建工具基本結構圖
圖二:構建后的文件列表
圖三:生成一條rule
圖四:生成后的.htaccess文件
ok,到這里基本告一段落了,資源版本號解決了。但是對于性能影響這塊還需要觀察,待有時間再研究。
github地址:https://github.com/zwlijun/se.build
上一個:Canalys最新數據顯示:全球智能手機出貨量下降11%
下一個:各國社交禁忌行為有哪些?

移動硬盤包括哪些,移動硬盤有哪些種類
RY風冷式導熱油泵的知識
掃碼沒付錢怎么尋回人呢(掃碼沒付錢怎么尋回人信息)
IGUS電纜CF140.10.07.UL
靜電場描繪實驗儀 使用說明
微軟筆記本電腦怎么重裝系統(微軟筆記本怎么重裝win10)
焙烤食品用糖漿 - 可溶性固形物的測定
園林植物疏剪法
德圖煙氣分析儀的主要功能和應用領域
石楠紅斑病的防治管理
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos