2010年1月15日 星期五
Dreamweaver的Spry framework效能使用心得
最近專案客戶的新需求是在網站Header裡增加收合式Menu Bar的功能,第一個想到的是Adobe Dreamweaver所提供方便快速的Spry Framework。輕鬆幾個步驟自動產生基本功能的陽春Layout,接著在視覺美化上則透過熟悉的CSS語法配合新設計的圖檔加以重新定義成所需要的UI。在這一切都實作完成並進入測試時,卻發現美中不足的是----效能問題。
因為客戶網站為一電子商務網站,功能齊全。在複雜的企業規則與商業邏輯的程式運作上,再加上背後介接了數個系統,網站整體效能已經有點令人擔心。在此次Spry Framework的應用上,視覺效果的呈現明顯Lag。探究其原因主要在於客戶網站所套用的CSS檔案過多所造成。Spry Menu Bar是透過Spry Framework 的一支javascript檔去動態呼叫特定的CSS檔案產生效果並做支援跨browser的判斷處理,若實務應用在過於複雜、需要套用多支CSS檔案的網站,建議在實作前先進行簡單測試,評估是否在達成所需的視覺效果的同時有明顯的效能問題。
效能問題發生後,請教了幾位PG共同商議解決之道。最後是為求不更動現狀的考量下,放棄Spry Framework,而重新寫了一支純CSS的Menu Bar功能,並且符合客戶在支援跨4種Browser版本的要求。背後套用了Peter Nederlof所發表的一支behavior file,主要在解決IE6不支援清單 ‹li›‹/li›hover效果。而對於Absolute Position的 ‹div›碰上‹select›‹/select›element及Flash檔案所造成Layer被覆蓋的問題又另一解決方案issue。 有關Absolute Position的碰上‹select›‹/select›element及Flash檔案所造成Layer被覆蓋的問題,可以技巧性地透過‹iframe›‹/iframe›克服。Absolute Position的 ‹div›可覆蓋‹iframe›‹/iframe›,而‹iframe›‹/iframe›可覆蓋(或包覆住‹select›‹/select›element及Flash檔案,提供大家參考。
因為客戶網站為一電子商務網站,功能齊全。在複雜的企業規則與商業邏輯的程式運作上,再加上背後介接了數個系統,網站整體效能已經有點令人擔心。在此次Spry Framework的應用上,視覺效果的呈現明顯Lag。探究其原因主要在於客戶網站所套用的CSS檔案過多所造成。Spry Menu Bar是透過Spry Framework 的一支javascript檔去動態呼叫特定的CSS檔案產生效果並做支援跨browser的判斷處理,若實務應用在過於複雜、需要套用多支CSS檔案的網站,建議在實作前先進行簡單測試,評估是否在達成所需的視覺效果的同時有明顯的效能問題。
效能問題發生後,請教了幾位PG共同商議解決之道。最後是為求不更動現狀的考量下,放棄Spry Framework,而重新寫了一支純CSS的Menu Bar功能,並且符合客戶在支援跨4種Browser版本的要求。背後套用了Peter Nederlof所發表的一支behavior file,主要在解決IE6不支援清單 ‹li›‹/li›hover效果。而對於Absolute Position的 ‹div›碰上‹select›‹/select›element及Flash檔案所造成Layer被覆蓋的問題又另一解決方案issue。 有關Absolute Position的碰上‹select›‹/select›element及Flash檔案所造成Layer被覆蓋的問題,可以技巧性地透過‹iframe›‹/iframe›克服。Absolute Position的 ‹div›可覆蓋‹iframe›‹/iframe›,而‹iframe›‹/iframe›可覆蓋(或包覆住‹select›‹/select›element及Flash檔案,提供大家參考。
2009年12月5日 星期六
jQuery筆記(1)--append()
append()方法是將字串資料、元素或物件依附在選定的wrapped set,範例:
$("#block").append("Hello!!");
上述作用為將字串Hello!!放在id為block的元素內容後面。
$("#block").append($("a.Hlink"));
上述作用為將具有類別名稱為Hlink的‹a›‹/a›資料(tag及文字所有內容)放在id為block的元素內容後面。
重點:當目的地(#block)有多個的時候,append source的元素將停留原地,並以複本附加於各目的地元素內容後。若目的地(#block)只有一個時,append source的元素將直接移動至目的地元素內容後。
appendTo(target):將選定的wrapped set依附在指定的targer(字串或元素)內容後。
$("‹p›test‹/p›").appendTo("#block p");
上述作用為將‹p›test‹/p›內容上在id為block元素裡p元素內容後面。
$("#flower").appendTo("#block p");
上述作用為將id為flower的元素內容,放在id為block元素裡p元素內容後面。
重點:目的地的多個或單個,決定source是移動或複製。
prepend(),prependTo(),insertAfter(),after(),insertBefore(),before()運作方式類似!!
$("#block").append("Hello!!");
上述作用為將字串Hello!!放在id為block的元素內容後面。
$("#block").append($("a.Hlink"));
上述作用為將具有類別名稱為Hlink的‹a›‹/a›資料(tag及文字所有內容)放在id為block的元素內容後面。
重點:當目的地(#block)有多個的時候,append source的元素將停留原地,並以複本附加於各目的地元素內容後。若目的地(#block)只有一個時,append source的元素將直接移動至目的地元素內容後。
appendTo(target):將選定的wrapped set依附在指定的targer(字串或元素)內容後。
$("‹p›test‹/p›").appendTo("#block p");
上述作用為將‹p›test‹/p›內容上在id為block元素裡p元素內容後面。
$("#flower").appendTo("#block p");
上述作用為將id為flower的元素內容,放在id為block元素裡p元素內容後面。
重點:目的地的多個或單個,決定source是移動或複製。
prepend(),prependTo(),insertAfter(),after(),insertBefore(),before()運作方式類似!!
2009年9月28日 星期一
實用的「專案管理之工具應用」課程
9月26日(六)上完台大嚴慶齡工業研究中心所開辦的「專案管理之工具應用」課程。在專注於各種專案管理工具學習操作與演練的同時,個人有下列心得:
- 專案的成果是需要一個團隊合作來完成。面對Project的每個issue,每個人都有各自的Solution想法。在集眾人之智、討論、整合意見達成共識的目的下,"工具"的應用就扮演具體而實質的功效。簡單而言,工具除了幫助尋求問題的解答之外,也是協助團隊進行"溝通"的好方法!!
- 了解各個專案管理工具的功能,並在特定的目的下善加利用。例如Decision Tree主要的功能在於透過評估或蒐集所得事件發生機率、收益與成本等數據資料並計算所得,藉以在多種方案下進行最佳選擇,這就是Decision Tree的決策功能。但你無法要求它提供過程中其它因素的影響分析。
- 在使用"工具"之前,對於數據資料的蒐集是非常重要的。網路發達的環境,對於資訊的取得通常以"google一下"的方式。然而往往忽略了PMBOK裡最基本的重點---依據"組織過程資產"與"專家判斷"工具。雖說"組織過程資產"端視服務的公司是否有從事知識管理,建立PMIS之類豐富的專案Lessons Learned。但從事專案管理的過程中,要時時把握住PMI所強調的核心理念。
- 箭線圖(ADM)結合Time Flow,強調置高點的宏觀檢視。記得當時在上PMBOK的時程管理,對於ADM通常只Focus在結點、箭線、虛箭線的圖示含意與任務關聯,然而這次課堂上,將ADM結合時間對照的觀念,強調Diagram、任務期間長度與時間軸三者相呼應的要求,如此透過ADM能宏觀整個專案任務在依存關係與時程展現上更加明確具體。
最後很高興後兩堂課所講授的品質管理其中6個管理工具,老師要我們使用海報、便利貼、繪圖筆等傳統工具來完成6個Diagram。透過小組brainstorm、溝通、整合後,按照講義的step by step要求一步一步扎實進行,實作成牆壁上的六大張海報圖,讓工具的應用與操作更加深刻。
2009年9月21日 星期一
收到日本寄來的OCUP UML認證證書了!!
2009年9月20日 星期日
QFD展開範例
9月6日參加為期一個月由台大嚴慶齡工業研究中心所開辦的『專案管理工具之應用』課程,第一堂課介紹QFD及範例實作。Case Study為"Design an excellent recreation bicycle"。做為Product Analysis的tool,將customer的expectation translate to specification,definition Product Scope。蒐集聆聽顧客的需求並轉化成產品研發需求。QFD也稱為"house of quality"。
藉由專家的interview、group discussion、media research及user訪談後,QFD展開如下表:
藉由專家的interview、group discussion、media research及user訪談後,QFD展開如下表:
2009年9月9日 星期三
讓PNG去背效果也能在IE6正常顯示
網頁上所插入產品之類的圖片,若是沒有去背的話,則會有"貼膏藥"的塊狀感。單純的去背處理最好是在同頁面背景色的情況下處理,才能降低鋸齒邊的明顯度。
在IE7問世後,網頁設計人員紛感欣慰的是對PNG透明背景的支援。然而IE6市佔率存在的事實與客戶IE6相容的要求下,仍可能要準備GIF圖檔給IE6使用。
要解決PNG去背效果在IE6正常顯示,要使用微軟IE專用的濾鏡語法:
‹style type="text/css"›
.bgPhoto { filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (src='system_stop_ok.png', sizingMethod='image');width:365px;height:157px;}
‹/style›
‹body›‹div class="bgPhoto"›‹/div›‹/body›
在‹div class="bgPhoto"›‹/div›容器裡會呈現一張寬365px、高157px的PNG圖,而且在IE6、IE7上均能正常顯示已有的去背效果(要PNG圖本身已做好去背才行),FireFox則是以正常的CSS語法即可!!
語法說明如下:
- sizingMethod有crop、image、scale三種。image是預設值,也就是頁面PNG圖片會依照原本Size顯示。如果使用scale的話,圖片則會依照div容器的尺寸縮放;如果用crop且圖片尺寸比DIV還大的話,圖片超出DIV的部分則會被切掉,局部顯示。
- filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/sample.png', sizingMethod='scale',enabled=FALSE);
enabled則為效果的開關,如果值是false或1,就等於整個濾鏡效果都停用。 - 使用AlphaImageLoader的做法,無論是寫在CSS還是HTML中,其圖片路徑一律皆採用HMTL檔案位置與圖片的相對路徑來寫(非CSS檔案與圖檔的相對路徑關係哦!!),否則會找不到圖片。
2009年9月3日 星期四
非關CSS的IE8問題
客戶對於網站的瀏覽器支援要求含蓋IE6、IE7、IE8及FireFox最新版(目前是3.5.2),近日在緊鑼密鼓的測試階段中,針對四個瀏覽器在CSS解讀差異所造成的跑版進行調整修改。然而在順暢的調整完畫面中卻發現我的IE8所呈現的完美畫面卻在同事的電腦裡"跑版"。在求證第三者後,發現唯獨只有一人的IE8所呈現的畫面有問題。時值農曆7月不會是卡到陰吧?!
在檢視每個安裝IE8同事的OS版本後發現,相同作業環境、相同IE8版本,卻有不同瀏覽結果。最初懷疑是否為IE8測試版UPDATE成IE8正式版所造成的問題。因此GOOGLE後注意到IE8"相容性檢視"功能,有些網站無法在 IE8 中正確顯示或正常運作,則啟用"相容性檢視"功能,果然恢復正常。
安裝IE8後,在iecompat.dll檔案裡會有一份Domain列表,表示在列表中的網站預設啟動"相容性檢視",也因此在工具列上該功能無法做開/關設定,icon自動消失。而IE8的"相容性檢視",就是採取IE7標準模式來讀取網頁,因為網頁符合IE7標準模式,此時在IE8自然會顯示正常。
參考文章:
1. 微軟技術支援服務(http://support.microsoft.com/kb/956197/TW/)
2. 小鎮遊跡點點村 (http://www.dotblogs.com.tw/littlebtc/archive/2009/04/11/ie8-modes-2.aspx)
在檢視每個安裝IE8同事的OS版本後發現,相同作業環境、相同IE8版本,卻有不同瀏覽結果。最初懷疑是否為IE8測試版UPDATE成IE8正式版所造成的問題。因此GOOGLE後注意到IE8"相容性檢視"功能,有些網站無法在 IE8 中正確顯示或正常運作,則啟用"相容性檢視"功能,果然恢復正常。
安裝IE8後,在iecompat.dll檔案裡會有一份Domain列表,表示在列表中的網站預設啟動"相容性檢視",也因此在工具列上該功能無法做開/關設定,icon自動消失。而IE8的"相容性檢視",就是採取IE7標準模式來讀取網頁,因為網頁符合IE7標準模式,此時在IE8自然會顯示正常。
參考文章:
1. 微軟技術支援服務(http://support.microsoft.com/kb/956197/TW/)
2. 小鎮遊跡點點村 (http://www.dotblogs.com.tw/littlebtc/archive/2009/04/11/ie8-modes-2.aspx)
訂閱:
文章 (Atom)




