asp.net偽靜態 關於頁面最佳化與偽靜態

WBOY
發布: 2016-07-29 08:40:52
原創
777 人瀏覽過

關於頁面最佳化與偽靜態
1)版面最佳化
2)偽靜態(重點涉及apache,smarty,正規)
詳細內容:
一、版面最佳化:
版面最佳化其實主要涉及HTML,JS,CSS,XML之間的關係(XML相關在此不作描述).
1)一般來說,在資源共享的前提下,我們最基本的目的是讓搜尋引擎所收錄(很多人被AJAX所迷惑,到處使用AJAX,但我的觀點是,只有在後台或用戶操作部分才使用).
因此,首先我們應該按搜尋引擎的收錄準則來設計(其實下面說的「偽靜態」還不是為了搜尋引擎,由於相關文件有好幾個PAGE,請自行搜尋),主要是html的使用問題,如
2)然後解決載入速度和內容純度問題:
主要是以下幾個原則:
1>不要為了版面美觀,把無謂的HTML加上去,建議把版面美觀的任務交給CSS,並認真考慮CSS的可重用性,HTML只作為對資訊內容的描述(好像是XML的重點吧)。我在網路上抽查了好一部分的站點,好的網站,html佔總內容的50%以下,但有的站點,文字內容佔總內容不到20%,
2>把JS,CSS寫成文件.只要是利用了瀏覽器的CAHCHE,減少內容下載
3>HTML標籤應該盡量減少嵌套,我見過誇張的一個站點,TABLE嵌套居然是11層..狂汗….
3 )解決資料合理處理時間
這個涉及內容比較多,主要是
二、偽靜態
這裡主要描述apache,smarty的應用,當然,其實使用什麼模板甚至不使用模板都沒什麼關係的,只是筆者長年使用smarty,深濃感受到它的強大
該部分主要針對的是對系統有控制權和對apache、正則較為熟悉的用戶。
在這裡,核心是強調正則的應用,如果你不會正則表達式,那麼你就只能停留一成不變的抄襲階段,甚至無法使用.而且正則在應用上普遍(基本上什麼語言都有) 、頻繁和強大,筆者還是建議花點時間,學精一點,受用終生
對於搜尋引擎,據我所知,關鍵是處理GET中的”?”、”&”.”php”,還有就是URL長度的問題就OK了,形式就看個人愛好了。
先說APACHE,關鍵是使用mod_rewrite,打開mod_rewrite模組(在httpd.conf中,把LoadModule rewrite_module modules/mod_rewrite.so前面的“#”去除)
如果使用了vhost(),可以在vhost裡面再加入類似下面的程式碼:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^xxx.com$
RewriteRule ^/([^./]+).html$ /index.php?action=$1 [L]
解釋:
以上設定不一定放在vhost裡,依你個人要求放得合適就行。
第一行,表示該vhost將要使用rewrite(URL重寫)
第二行,RewriteCond是用於如果後面條件符合(第一個參數滿足第二個參數,其中第二個參數為正規表示式),則執行下面的RewriteRule指令,其中%{xxxx}表示是apache的變數,%{HTTP_HOST}表示URL的主機(網域名稱),其它變數請查看apache2手冊
第三行,實作url重寫(重頭戲),第一個參數為在瀏覽器中輸入的url,滿足該正則的uri才執行重寫,第二個參數是重寫規則,即把滿足第一個參數的url 按照該規則轉換成你須要的url在這裡筆者必須指出,重寫後的url如果包含”http://”,跳轉後的地址會顯示在瀏覽器的地址欄中。第三個參數是一些控制,如以上[L]表示該重寫是最後一條,後面的重寫規則不再被執行。
smarty部分:
主要是處理輸出的頁面內容,你使用apache的rewrite後,你頁面中的連結當然使用了它的規則了,如:原來是abc.php?action=doit就要改用類似abc/action-doit.html這樣的方式表示,當然,你可以在做頁面時自己手動去改,但我覺得這是比較笨的方法.為什麼不去使用ob_xxxxx()去控制呢?( ob_xxxx()系的函數使用請參考php手冊).在這裡的介紹使用smarty去代替,因為這樣會更加靈活
在smarty中,使用register_outputfilter()註冊一個處理方法即可,具體方法類似為:
//先定義好一個處理函數
function change_url($tpl_output, &$smarty)
{
$tpl_output=preg_replace(”//index.php??action=([^&&? ]+)/i”,”/\1.html”,$tpl_output);
return $tpl_output;
}
//函數第一個參數是smarty的頁面內容,第二個是smarty指標
//然後使用
$tpl->register_outputfilter(”change_url”);
register_outputfilter()方法是輸出過濾函數,即交給change_url($tpl_output, &$smarty)第一個參數是smarty處理後的頁面內容
同類型的還有前過濾方法register_prefilter(),即把smarty模板交給第一個參數,詳細使用方法請參考smarty手冊

以上就介紹了asp.net偽靜態 關於頁面優化和偽靜態,包括了asp.net偽靜態方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!