1、web前端看哪些書籍好,前端開發書籍大全
1、HTML/HTML5基礎:
《HTML5秘籍》
2、CSS
推薦書籍:
1、《圖靈程序設計叢書:HTML5與CSS3設計模式》
2、《Web開發技術叢書:深入理解Bootstrap》
3、《高流量網站CSS開發技術》
4、《CSS設計徹底研究》 這個一定要
5、《Web開發技術叢書:深入理解Bootstrap》
6、可以找一些專門講SASS的書,但是我沒找到
7、《CSS權威指南(第3版)》
3、深入學習JS
推薦書籍:
1、《單頁Web應用:JavaScript從前端到後端 》
2、《Web 2.0界面設計模式》
3、《響應式Web設計:HTML5和CSS3實戰》
5、工具
學會使用grunt進行JS、CSS、HTML 壓縮,特別是模塊化js開發時候的壓縮
會用PS進行切圖、保存icon
入手sublime、webstorm
學會使用chrome調試面板,特別是:console、network、profile、element
進階:
4、性能
推薦書籍:
1、《Web性能權威指南》
2、雅虎網站頁面性能優化的34條黃金守則
5、HTTP及TCP協議族
推薦書籍:
1、《HTTP權威指南》
2、《TCP/IP詳解》
3、《圖解TCP/IP(第5版)》
請使用手機"掃一掃"x
2、為什麼下什麼東西都下不了,總是彈出:""Internet Ixplor 點不可用,或找不到
解決方案:
一、打開控制面板-->添加刪除程序,列出已裝程序,去找比如「一搜」,「雅虎助手」,「易趣」,「3721」,「中文域名,或什麼實名」,「某某工具條」 ,「什麼搜索,什麼工具條」啊,全部卸載,這些都是臭名招著的「流氓軟體」,一個不能留。
二、 卸載插件,推薦使用windows優化大師,因為它有恢復功能,避免被您錯誤的卸載系統必須的插件,而且它可以管理的查件非常多。優化大師版本如果是7.1或以上的,這個插件管理功能在[系統性能優化]-->[系統安全優化]-->[附加工具]-->[IE插件管理],選中一個,點下面的[卸載]即可,如果想恢復,點[恢復],然後選中要恢復的項目即可,非常安全方便。
三、光卸載了它們還是不行,在你訪問網站的時候,你仍然會被蒙著自動裝到你的計算機裡面。所以要免疫它們。這里介紹用upiea.exe,[下載地址:http://www.sheok.com/upiea.exe]不用安裝,運行打開後,點[插件免疫],界面下面的下拉菜單,選擇[選擇當前分類的全部插件]-->點[應用]。如果您經常上國外的網站,請點上面的[國外]重復剛才操作即可,其他的不用免疫。這樣就算已經成功了一大半了。
四、下載最新殺毒軟體殺一下毒
這里用金山毒霸(我對這個比較熟悉),目前是可以免費下載並永久使用。
下載地址:
http://download.union.kingsoft.com/union/source/downloadDb.php?uid=22142&sid=0
如果你的機器是第一次裝金山毒霸,在軟體的提示下你注冊一個金山通行證,你可以免費升級7天。安裝後->安裝文件夾下的KASMain.EXE,其官方名字是「金山反間諜 2006」,界面很簡單,功能就兩個:掃描和修復。但是掃描功能基本上沒有用,因此我們直接點開修復界面。
◇ 首先可以看到上面的部分有兩個按鈕:一鍵修復和高級修復,假如你對系統不太熟悉,請用一鍵修復,軟體會自動幫您修復的,當然你也可以嘗試點開高級修復(要知道電腦知識就是這樣一點點積累起來的),懂一點的可以用高級修復。修復後,可以幫您卸載掉一些流氓軟體的插件。
◇ 下面一欄的工具箱也有用處:歷史痕跡清理,單擊點開後—>點擊[全選/全不選]可以看到列表中全部鉤上了-->點[清除]。這一步是刪除所有臨時文件,因為有些流氓軟體刪掉或卸載後死灰復燃就是因為-->它們的安裝程序往往就隱藏在不被大家注意的臨時文件夾中!
◇ 進程管理器也有很有用,點開後,跟系統自帶的任務管理器有點相似。這里介紹兩個很重要的功能,其一,它可以顯示進程程序所在的地址,而且點右鍵的菜單「轉到模塊目錄」 功能能直接進入進程所在的目錄。這對手動清除病毒(詳細介紹:http://)很有用!另外的一個功能就是右鍵彈出菜單-->模塊文件屬性 功能,如果你覺得自己的電腦有問題,並懷疑某個進程是病毒,請用滑鼠單擊這個進程,右鍵單擊後,點[模塊文件屬性],如果屬性對話框中的版本內容為空,則請你堅決把該進程結束掉,這個進程很大程度有問題!而正常的進程的屬性都是有版本信息的,包括公司名稱,版本號等。
/*題外話:許多朋友對任務管理器中顯示的進程名稱都不甚了解,不知道哪些進程是系統進程,而哪些進程又是病毒程序。其實要是你經常打開任務管理器,你就會知道哪些是系統進程了,可以參見常見系統進程表:http://www.hn0943.com/huining/showjs.asp?js_id=41 */
◇ 金山反間諜軟體 修復界面下面一欄的右邊還有個小三角,點開後出現了」啟動項清理「功能」按鈕,點開後列出了所有的開機要啟動項目。雖然功能沒有windows xp中自帶的msconfig那麼多,但是比它方便易用,如果你對系統不熟悉的話,而您的電腦又不是辦公室的電腦,你可以將這些啟動項目(除了幾個輸入法外)全部刪除。這樣會大大加快機器運行速度!!也可以排除一些病毒的運行。
◇ 最後你將毒霸升級到最新版本,打開金山毒霸的主程序,完全殺毒後,把金山毒霸的安裝目錄復制到其他地方備份一個,然後將剛裝上的
金山毒霸卸載!這樣的目的是不讓金山毒霸自動運行,什麼「防火牆之類」都是沒有用的,只會消耗系統的性能。下次要用金山毒霸,可以到備份的地方運行它。
從新啟動計算機,哈哈大功告成了,你的計算機將比「奔騰5」還要快!
/*巧妙使用金山毒霸的方法*/
http://還沒有寫出來
有什麼問題可以給我發郵件:[email protected].
----------------------------------------------
愛你就是這么莫名其妙,是這么義無返顧,知道我不會是你今生的唯一,你卻是我一生的最愛!
--------------------
免費下載 金山毒霸 http://union.kingsoft.com/union/download/index.html?uid=22142
3、請問各位怎樣才能刪除每次開機自動彈出的廣告程序啊?
常見的「瀏覽器綁架」症狀可能有以下一些(僅是舉例,絕非全部症狀):
*被重定向到惡意網頁
*當輸入錯誤的網址時被重定向
*輸入字元時IE速度嚴重減慢
*重啟動後IE主頁/搜索頁被更改
*不請自來的受信任站點
*收藏夾里自動反復添加惡意網站
*在使用Google和Yahoo等著名搜索引擎搜索時出現某些彈出窗口
*IE 選項卡中出現不能更改或被隱藏的項目
*不能打開 IE 選項卡
……
如果您的瀏覽器出現這類症狀,就提示您可能遭遇了瀏覽器劫持。當然,您還可以通過一些對付廣告/間諜軟體、瀏覽器劫持的專門工具來檢測和修復這些問題。清除廣告/間諜軟體前請注意,如果它們是隨同某個免費軟體安裝的,清除了它們之後,該免費軟體很可能無法繼續正常使用。
請首先使用最新版殺毒軟體在安全模式查殺病毒、木馬。
進入安全模式的方法:重新啟動電腦,開機檢測完後,按[F8]鍵(可以一直按到啟動菜單出來為止),選擇安全模式進入Windows。
其次,提醒您一下,某些廣告程序(尤其是一些沒有被殺毒軟體列入查殺名單的)會在控制面板的「添加刪除」中留下卸載項目,在進行下一步之前您不妨試試看。
再次,建議您不妨先嘗試一些現成的對付「瀏覽器綁架」、間諜軟體、廣告程序的免費工具。比如——Spybot-Search&Destroy、Ad-aware、CoolWebSearch Shredder (CWShredder.exe)等等。
如果您遇到的那些惡意網頁是英文的,這些軟體常常能幫上您的忙。
最後,如果這些軟體不起作用,您還可以嘗試使用HijackThis掃描並修復。如果您對HijackThis掃描日誌中某些項目不清楚,請不要貿然自行修復,不妨先使用搜索引擎在互聯網上查找一下。
參考資料:http://bbs.dvbbs.net/dispbbs.asp?boardID=18&ID=911685&page=1
4、優化投入產出比的四大黃金法則是什麼?
圖11-6-1 四大黃金法則
預期交流,持續進行
預期交流,持續進行是為了提高網路營銷的合作績效,從而促進營銷工作的長久發展。通常,需要網站營銷人員將原計劃中的合作方分類,通過與合作方的長期接觸與與溝通進行更有針對性地交流。那麼,營銷人員就要提前向各方發布預期交流的信息,最好是有周期性的將相關信息發布給客戶,使每一步都走的更有價值。
廣泛利用媒體支持
媒體支持永遠是網站生存及營銷推廣的綠色通道。而所有媒體中,廣告媒體則是充滿無限商機的一塊「老薑」。廣告媒體的表現形式主要有文章、網路視頻的鏈接、產品數據、通欄等,能夠有效地提高網站銷售額。因此,優化網路營銷投入產出比不可無視的一點就是要廣泛利用媒體的支持,唯有如此才能使網路營銷更加適應系統環境,提高訂單轉化率。
利用有效的跟蹤技術
跟蹤技術是指通過高質量、精確的數據跟蹤使用戶與商家之間實現技術上的匹配。從而通過記錄網站的潛在商機與銷售額等一系列方法優化最終結果。其主要跟蹤方法包括:轉換跟蹤、對話跟蹤、瀏覽跟蹤、指紋跟蹤、終生跟蹤、瀏覽跟蹤以及購物車跟蹤和最小標准跟蹤。
開展合作夥伴計劃
網路營銷離不開合作夥伴的有力支持,一個人的戰場註定是失意的。孤注一擲也無法將產品做大做強。因此對投入產出比評估的優化還包括合作夥伴計劃,其具體要求是營銷人員有一家有效、高效的網店。另外要注意的是:購物流程盡量簡單,步驟不宜過多;不強行要求用戶填寫無用的用戶信息;訂購流程務必嚴謹、明確,不能模稜兩可;對付款流程及雙方的責任要有詳細的說明。
5、如何提高網站頁面速度?
網頁的加在一半就是代碼的載入,各種文件,以及一些因素,那麼就從這些因素去考慮就可以:
1、合並Js文件和CSS
將JS代碼和CSS樣式分別合並到一個共享的文件,這樣不僅能簡化代碼,而且在執行JS文件的時候,如果JS文件比較多,就需要進行多次「Get」請求,延長載入速度,將JS文件合並在一起後,自然就減少了Get請求次數,提高了載入速度。
2、Sprites圖片技術
Spriting是一種網頁圖片應用處理方式,它是將一個頁面涉及到的所有零星圖片都包含到一張大圖中去,然後利用CSS技術展現出來。這樣一來,當訪問該頁面時,載入的圖片就不會像以前那樣一幅一幅地慢慢顯示出來了,可以減少了整個網頁的圖片大小,並且利用CSSSprites能很好地減少網頁的http請求,從而大大的提高頁面的性能。CSSSprites在國內很多人叫css精靈,很早就有了,在很多大型網站都有用到,特別是一些所有頁面都存在的圖標用得比較多,很好的提升載入速度。
3、壓縮文本和圖片
壓縮技術如gzip可以有效減少頁面載入的時間。包括HTML,XML,JSON(JavaScript對象符號),JavaScript和CSS等,壓縮率都可以在大小70%左右。文本壓縮用得比較多,一般直接在空間開啟就行,而圖片的壓縮就比較隨意,很多都是直接上傳,其實還有很大的壓縮空間。
4、延遲顯示可見區域外的內容
為了確保用戶可以更快地看見可見區域的網頁可以延遲載入或展現可見區域外的內容,為了避免頁面變形,可以使用佔位符標簽制定正確的高度和寬度。比如WP的jQueryImage LazyLoad插件就可以在用戶停留在第一屏的時候,不載入任何第一屏以下的圖片信息,只有當用戶把滑鼠往下滾動的時候,這些圖片才開始載入。這樣很明顯提升可見區域的載入速度,提高用戶體驗。
5、確保功能圖片優先載入
網站主要考慮可用性的重要性,一個功能按鈕要提前載入出來,用戶進入下載頁,一個只需要8s時間的下載花了5s在等待、尋找下載按鈕圖片,誰能忍受?
6、重新布置Call-to-Action按鈕
其實這個和上面一條是差不多的,都是從用戶體驗速度著手,跳過了網頁的整體載入速度。速度沒變,只是讓一些行為按鈕提前,Call-to-Action按鈕一般習慣設計在頁面底部,這樣的習慣對於用戶來說並不總是好的,購買用戶需要等到最下面載入出來才能點擊下一步操作。可以調整CTA按鈕的位置或使用滑動的圖片按鈕。很多大型購物網站的加入購物車就是這種類型。
7、圖片格式優化
不恰當的圖像格式是一種極為常見的減慢載入速度的罪魁禍首。正確的圖片格式可以讓圖片縮小數倍,如果保存為最佳格式。可以節省大量帶寬,減少處理時間時間,大大加快頁面載入速度,這是一種很常見的做法。
8、使用 Progressive JPEGs
ProgressiveJPEGs圖片是JPEG格式的一個特殊變種,名為「高級JPEG」。在創建高級JPEG文件時,數據是這樣安排的:在裝入圖像時,開始只顯示一個模糊的圖像,隨著數據的裝入,圖像逐步變得清晰。它相當於交織的GIF格式的圖片。高級JPEG主要是考慮到使用數據機的慢速網路而設計的,快速網路的使用者通常不會體會到它和正常JPEG格式圖片的區別。對於網速比較慢的用戶,這無疑有很好的體驗。
9、精簡代碼
這個可以說是最直接的一個方法,也是用得比較多的,對網頁代碼進行瘦身,刪除不必要的沉冗代碼,比如不必要的空格、換行符、注釋等,包括JS代碼中的無用代碼也需要清除。其中對於注釋代碼的清除可能有些人存在誤區,甚至有的在裡面堆砌關鍵詞。
10、延遲載入和執行非必要腳本
網頁中有很多腳本是在頁面完全載入完前都不需要執行的,可以延遲載入和執行非必要腳本。這些腳本可以在onload事件之後執行,避免對網頁上重要內容的呈現造成影響。這些腳本可能是自己網頁的甲苯,往往更多的是一些第三方腳本,這樣的有很多,比如評論、廣告、智能推薦、百度雲圖、分享等等,這些完全可以等主體內容載入完後再執行。
11、使用AJAX
AJAX即「Asynchronous Javascript +XML「,是指一種創建互動式網頁應用的網頁開發技術。通過在後台與伺服器進行少量數據交換,AJAX可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。傳統的網頁(不使用AJAX)如果需要更新內容,必須重載整個網頁面。
12、自動化的頁面性能優化
自動化的頁面性能優化也就是藉助工具了,網站提速工具有很多,這里Radware推薦了自家的RadwareFastView,也算Radware給自家做了一個廣告,這里不多說了。
6、雅虎團隊35條黃金定律是什麼時候提出的
雅虎團隊35條黃金定律之一
減少http請求次數
80%的響應時間花在下載網頁內容(images, stylesheets, javascripts, scripts, flash等)。減少請求內次數是縮短響應時間的容關鍵!可以通過簡化頁面設計來減少請求次數,但頁面內容較多可以採用以下技巧。
1. 捆綁文件: 現在有很多現成的庫可以幫你將多個腳本文件捆綁成一個文件,將多個樣式表文件捆綁成一個文件,以此來減少文件的下載次數。例如在asp.net中可以使用ScriptManager,asp.net MVC中的Bundling。
2. CSS Sprites: 就是把多個圖片拼成一副圖片,然後通過CSS來控制在什麼地方具體顯示這整張圖片的什麼位置。給大家看個熟悉的Sprites實例。
7、怎麼測試一個網站的性能啊?
網站性能工具Yslow的使用方法
Yslow是雅虎開發的基於網頁性能分析瀏覽器插件,從年初我使用了YSlow後,改變了網站模板大量冗餘代碼,不僅提升了網頁的打開速度,這款插件還幫助我分析了不少其他網站的代碼,之前我還特意寫了提高網站速度的秘籍,就是通過這款插件分析得出的。網路上已經有不少Yslow使用說明了,本文我想介紹下我使用Yslow的方法和一些別人沒提到的小技巧。
Yslow的安裝方法
現在Yslow已經有很多版本了,打開Yslow官網就能看到有四個版本可供選擇:火狐(firefox)瀏覽器、谷歌(chrome)瀏覽器、歐朋(opera)瀏覽器和移動版。
安裝Yslow要先安裝 Firebug(本地址以火狐為例),兩種方法啟動Yslow:1、打開Firebug窗口,選擇Yslow選項。2、直接點擊火狐右下角的Yslow啟動按鈕。
JSLint是一個強大的工具,它可以檢驗HTML代碼以及內聯的Javascript代碼,通過JSLint發現了google analytics上的一個js錯誤。
ALL JS:查看你這個網頁上一共引用了多少JS。
All JS Beautified:把所有JS放在打開的頁面中,利用站長統一檢查(我感覺作用不大)。
All JS Minified:同上,但它顯示的是壓縮過的js代碼,如果你要JS優化,它已經給你優化好了,來過來直接用。
All CSS:顯示你網頁所有CSS文件。
YUI CSS Compressor:顯示網頁壓縮後的CSS文件,也是拿過來可以直接用的。
All Smush.it™:圖片在線優化網站,點擊它後會自動跳到smushit網站上給你自動優化CSS圖片,該網站提供了優化前與優化後的對比,點擊直接下載優化後的圖片,在覆蓋到自己網站上就可以了,強烈推薦。
Printable View:這個是列印用的,部門開會、前端設計師討論、向老闆匯報時估計用的上。
我目前在用,希望對你有幫組
8、急!!! 如何讓雅虎圖片搜索關鍵詞顯示自己的圖片? 如何讓雅虎搜索關鍵詞後顯示自己的網站??
這個很簡單你在雅虎新聞或者雅虎其他的平台發幾張你的圖片,然後雅虎圖片可能過一段時間就會搜路,想顯示你的網站這個就需要seo優化了。
9、如何進行網站性能優化
內容頁面優化就一個要點:你的訪客要看到什麼內容你就做什麼內容。建議你以一個訪客的角度來看你自己的網站,內容是否完善、頁面是否好看、框架是否清晰……做好這些就算是內容優化了。
10、網站性能優化怎麼辦
一、前端優化
網站性能優化是一個很綜合的話題,涉及到伺服器的配置和網站前後端程序等各個方面,我只是從實際經歷出發,分享一下自己所嘗試過的網站性能優化方法。之所以在標題上掛一個web2.0,是因為本文更偏重於中小網站的性能優化,我所使用的系統也是典型web2.0的LAMP架構。
首先講講前端的優化,用戶訪問網頁的等待時間,有80%是發生在瀏覽器前端,特別是頁面和頁面中各種元素(圖片、CSS、Javascript、 flash…)的下載之上。因此在很多情況下,相對於把大量的時間花在艱苦而繁雜的程序改進上,前端的優化往往能起到事半功倍的作用。雅虎最近將內部使用的性能測試工具yslow向第三方公開,並發布了著名的網站性能優化的十三條規則,建議你下載並安裝yslow,並作為測評網站優化效果的工具。下面我挑其中特別有價值的具體說明一下優化的方法:
對於第一次訪問您網站,尚未在瀏覽器cache中緩存您網站內容的用戶,我們可以做的事情包括:
1)減少一個頁面訪問所產生的http連接次數
對於第一次訪問你網站的用戶,頁面所產生的http連接次數是影響性能的一個關鍵瓶頸。
對策:
- 盡量簡潔的頁面設計,最大程度減少圖片的使用,通過放棄一些不必要的頁面特效來減少javascript的使用。
- 使用一些優化技巧,比如利用圖片的背景位移減少圖片的個數;image map技術;使用Inline images將css圖片捆綁到網頁中。
- 盡量合並js和css文件,減少獨立文件個數。
2) 使用gzip壓縮網頁內容
使用gzip來壓縮網頁中的靜態內容,能夠顯著減少用戶訪問網頁時的等待時間(據說可達到60%)。主流的web伺服器都支持或提供gzip壓縮,如果使用apache伺服器,只需要在配置文件中開啟 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是靜態的頁面,使用gzip壓縮都能夠顯著提高伺服器效率並減少帶寬支出,注意圖片內容本身已經是壓縮格式了,務必不要再進行壓縮。
3)將CSS放在頁面頂端,JS文件放在頁面底端
CSS的引用要放在html的頭部header中,JS文件引用盡量放在頁面底端標簽的後面,主要的思路是讓核心的頁面內容盡早顯示出來。不過要注意,一些大量使用js的頁面,可能有一些js文件放在底端會引起一些難以預料的問題,根據實際情況適當運用即可。
4)使JS文件內容最小化
具體來說就是使用一些javascript壓縮工具對js腳本進行壓縮,去除其中的空白字元、注釋,最小化變數名等。在使用gzip壓縮的基礎上,對js內容的壓縮能夠將性能再提高5%。
5)盡量減少外部腳本的使用,減少DNS查詢時間
不要在網頁中引用太多的外部腳本,首先,一次dns的解析過程會消耗20-120毫秒的時間;其次,如果在頁面中引用太多的外部文件(如各種廣告、聯盟等代碼),可能會因為外部文件的響應速度而將你的網站拖得很慢。如果不得不用,那麼就盡量將這些腳本放在頁腳吧。不過有一點需要提及,就是瀏覽器一般只能並行處理同一域名下的兩個請求,而對於不同子的域名則不受此限制,因此適當將本站靜態內容(css,js)放在其他的子域名下(如 static.xxx.com)會有利於提高瀏覽器並行下載網頁內容的能力。
對於您網站的經常性訪問用戶,主要的優化思路就是最大限度利用用戶瀏覽器的cache來減少伺服器的開銷。
1)在header中添加過期時間(Expires Header)
在header中給靜態內容添加一個較長的過期時間,這樣可以使用戶今後訪問只讀取緩存中的文件,而不會與伺服器產生任何的交互。不過這樣做也存在一些問題,當圖片、CSS和js文件更新時,用戶如果不刷新瀏覽器,就無法獲得此更新。這樣,我們在對圖片、css和js文件修改時,必須要進行重命名,才能保證用戶訪問到最新的內容。這可能會給開發造成不小的麻煩,因為這些文件可能被站點中的許多文件所引用。flickr提出的解決辦法是通過url rewrite使不同版本號的URL事實上指向同一個文件,這是一個聰明的辦法,因為url級別的操作效率是很高的,可以給開發過程提供不少便利。
要理解為什麼這樣做,必須要了解瀏覽器訪問url時的工作機制:
a. 第一次訪問url時,用戶從伺服器段獲取頁面內容,並把相關的文件(images,css,js…)放在高速緩存中,也會把文件頭中的expired time,last modified, ETags等相關信息也一同保留下來。
b. 用戶重復訪問url時,瀏覽器首先看高速緩存中是否有本站同名的文件,如果有,則檢查文件的過期時間;如果尚未過期,則直接從緩存中讀取文件,不再訪問伺服器。
c. 如果緩存中文件的過期時間不存在或已超出,則瀏覽器會訪問伺服器獲取文件的頭信息,檢查last modifed和ETags等信息,如果發現本地緩存中的文件在上次訪問後沒被修改,則使用本地緩存中的文件;如果修改過,則從伺服器上獲取最新版本。
我的經驗,如果可能,盡量遵循此原則給靜態文件添加過期時間,這樣可以大幅度減少用戶對伺服器資源的重復訪問。
2)將css和js文件放在獨立外部文件中引用
將css和js文件放在獨立文件中,這樣它們會被單獨緩存起來,在訪問其他頁面時可以從瀏覽器的高速緩存中直接讀取。一些網站的首頁可能是例外的,這些首頁的自身瀏覽可能並不大,但卻是用戶訪問網站的第一印象以及導向到其他頁面的起點,也可能這些頁面本身使用了大量的ajax局部刷新及技術,這時可以將 css和js文件直接寫在頁面中。
3)去掉重復的腳本
在IE中,包含重復的js腳本會導致瀏覽器的緩存不被使用,仔細檢查一下你的程序,去掉重復引用的腳本應該不是一件很難的事情。
4)避免重定向的發生
除了在header中人為的重定向之外,網頁重定向常在不經意間發生,被重定向的內容將不會使用瀏覽器的緩存。比如用戶在訪問www.xxx.com,伺服器會通過301轉向到www.xxx.com/,在後面加了一個「/」。如果伺服器的配置不好,這也會給伺服器帶來額外的負擔。通過配置apache的 alias或使用mod_rewrite模塊等方法,可以避免不必要的重定向。
還有一些,比如使用CDN分發機制、避免CSS表達式等、避免使用ETags等,因為不太常用,這里就不再贅述了。
做完了上述的優化,可以試著用yslow測試一下網頁的性能評分,一般都可以達到70分以上了。
當然,除了瀏覽器前端和靜態內容的優化之外,還有針對程序腳本、伺服器、資料庫、負載的優化,這些更深層次的優化方法對技術有更高的要求。本文的後半部分將重點探討後端的優化。
二、後端優化
上次寫完web2.0網站前端優化篇之後,一直想寫寫後端優化的方法,今天終於有時間將思路整理了出來。
前端優化可以避免我們造成無謂的伺服器和帶寬資源浪費,但隨著網站訪問量的增加,僅靠前端優化已經不能解決所有問題了,後端軟體處理並行請求的能力、程序運 行的效率、硬體性能以及系統的可擴展性,將成為影響網站性能和穩定的關鍵瓶頸所在。優化系統和程序的性能可以從以下的方面來入手:
1)apache、mysql等軟體的配置的優化
盡管apache和mysql等軟體在安裝後使用的默認設置足以使你的網站運行起來,但是通過調整mysql和apache的一些系統參數,還是可以追求更高的效率和穩定性。這個領域中有很多專業的文章和論壇(比如: http://www.mysqlperformanceblog.com/),要想掌握也需要進行深入的研究和實踐,這里就不重點討論了。
2)應用程序環境加速
這里僅以我最常應用的php開發環境為例,有一些工具軟體可以通過優化PHP運行環境來達到提速的目的,其基本原理大致是將PHP代碼預編譯並緩存起來,而不需要改變任何代碼,所以比較簡單,可以將php的運行效率提升50%以上。比較常用的免費php加速工具有:APC( http: //pecl.php.net/package-info.php?package=APC)、Turck MMCache( http://turck-mmcache.sourceforge.net)、php accelebrator(www.php-accelerator.co.uk),還有收費的Zend Performance Suite
3)將靜態內容和動態內容分開處理
apache是一個功能完善但比較龐大的web server,它的資源佔用基本上和同時運行的進程數呈正比,對伺服器內存的消耗比較大,處理並行任務的效率也一般。在一些情況下,我們可以用比較輕量級的web server來host靜態的圖片、樣式表和javascript文件,這樣可以大大提升靜態文件的處理速度,還可以減少對內存佔用。我使用的web server是來自俄羅斯的nginx,其他選擇方案還包括lighttpd和thttpd等。
4)基於反向代理的前端訪問負載均衡
當一台前端伺服器不足以應付用戶訪問時,通過前端機實現web訪問的負載均衡是最快速可行的方案。通過apache的mod_proxy可以實現基於反向代理的負載均衡,這里推薦使用nginx做代理伺服器,處理速度較apache更快一些。
5)應用緩存技術提高資料庫效能,文件緩存和分布式緩存
資料庫訪問處理並發訪問的能力是很多網站應用的關鍵瓶頸,在想到使用主從結構和多farm的方式構建伺服器集群之前,首先應該確保充分使用了資料庫查詢的緩存。一些資料庫類型(如mysql的innoDB)自身內置對緩存的支持,此外,還可以利用程序方法將常用的查詢通過文件或內存緩存起來。比如通過 php中的ob_start和文件讀寫函數可以很方便的實現文件形式的緩存,而如果你擁有多台伺服器,可以通過memcache技術通過分布式共享內存來對資料庫查詢進行緩存,不僅效率高而且擴展性好,memcache技術在livejournal和Craigslist.org等知名網站應用中都得到了檢驗。
6)伺服器運行狀態的檢測,找到影響性能的瓶頸所在
系統優化沒有一勞永逸的方法,需要通過檢測伺服器的運行狀態來及時發現影響性能的瓶頸,以及可能存在的潛在問題,因為網站的性能,永遠取決於木桶中的短板。可以編寫一些腳本來檢測web服務的運行,也有一些開源的軟體也提供了很好的功能
7)良好的擴展架構是穩定和性能的基礎
一些技巧和竅門可以幫你度過眼前的難關,但要想使網站具備應付大規模訪問的能力,則需要從系統架構上進行徹底的規劃,好在很多前人無私的把他們架構
網站的經驗分享給我們,使我們可以少走甚多彎路。我最近讀到的兩篇有啟發的文章:
- 從LiveJournal後台發展看大規模網站性能優化方法
- Myspace的六次重構
最後不得不提到程序編碼和資料庫結構對性能的影響,一系列糟糕的循環語句,一個不合理的查詢語句、一張設計不佳的數據表或索引表,都足以會使應用程序運行的速度成倍的降低。培養全局思考的能力,養成良好的編程習慣,並對資料庫運行機制有所了解,是提高編程質量的基礎。