動態頁面靜態化

動態頁面靜態化

靜態頁面是網頁的代碼都在頁面中,不需要執行asp,php,jsp,.net等程式生成客戶端網頁代碼的網頁,靜態頁面網址中一般不含“?”、“=”、“&”等特殊符號。靜態頁面不能自主管理髮布更新的頁面,如果想更新網頁內容,要通過FTP軟體把檔案DOWN下來用網頁製作軟體修改(通過fso等技術例外) 常見的靜態頁面舉例:.html擴展名的、.htm擴展名的。 注意:靜態頁面並非網站上沒有動畫的就是靜態頁面。

基本介紹

  • 中文名:動態頁面靜態化
  • 外文名:Dynamic page static
  • 所屬學科:網際網路
  • 分類:網頁
靜態頁面,動態頁面,靜態化,

靜態頁面

最早的時候,網站內容是通過在主機空間中放置大量的靜態網頁實現的。為了方便對這些分散在不同目錄的靜態網頁的管理,(一般是通過FTP),像frontpage/dreamweaver這樣軟體甚至直接提供了向主頁空間以FTP方式直接訪問檔案的功能。以靜態網頁為主的網站最大的困難在於對網頁的管理,在這種框架里,網頁框架和網頁中的內容混雜在一起,很大程度地加大了內容管理的難度。為了減輕這種管理的成本,發展出了一系列的技術,在筆者的理解中,甚至連css本身,原本也是針對這種亂七八糟的網頁維護而設計的,目的就是把網頁表達的框架和內容本身抽象分離出來。

動態頁面

動態頁面是通過執行asp,php,jsp,.net等程式生成客戶端網頁代碼的網頁。 動態頁面通常可以通過網站後台管理系統對網站的內容進行更新管理。發布新聞,發布公司產品,交流互動,部落格,網上調查等,這都是動態網站的一些功能。也是我們常見的。 動態頁面常見的擴展名有:.asp .php .jsp .cgi.aspx 等。 注意:動態頁面的“動態”是網站與客戶端用戶互動的意思,而非網頁上有動畫的就是動態頁面。
使用動態網頁的技術是從幾年前興起,已經進入衰老期的網站技術,也是BS系統的核心技術。這種技術稱為動態網頁,就是因為一般是在共用的網頁框架下面通過程式接口抽取放在資料庫或其他存儲媒體中的內容,從而真正實現了把網頁框架和內容提取分離的目的。也就是傳統中的php,asp,jsp,servlet等。這種技術的發展一直以邏輯反覆抽象,直到把幾乎所有的系統業務邏輯合併到各個組件、控制項中,網頁代碼僅僅完成最後對象屬性讀取的任務。在JSP中,標籤結合EL語言就是這種發展方向的極致了。這種技術實際上就是不同的(不限數量的)內容共用網頁框架,從而將網頁維護成本下降到接近可以忽略的程度。在這種技術面前,象 frontpage/dreamwever這種軟體,實際上已經多少顯得有些過時了。

靜態化

但為什麼又要把動態網頁以靜態網頁的形式發布呢?一個很重要的原因,就是因為搜尋引擎。由於搜尋引擎對aspx頁面收錄和html頁面收錄率的差別以及頁面資源占用問題,我們很多時候需要實現ASPX頁面動態轉靜態。以如今網際網路上最普通的查找資料的方式看,網際網路內容到達公眾面前大致只有三條路:第一條路是通過眾所周知的入口網站,老讀者有意識地到達這些地方搜尋相應的有針對性的資料;第二條路是做廣告,通過公眾使用一些免費服務的機會夾帶資料信息,把公眾帶到目標網站;第三條路是搜尋引擎,通過關鍵字和其他因素,把相應的信息推介到公眾的面前。實際上,這也是帶來新公眾的最有效的途徑;而對於絕大多數的站點,除了屈指可數的幾個入口網站外,這種搜尋引擎帶來的讀者公眾,占比90%以上。
如此重要的一條公眾途逕自然是不能忽略的。因此,儘管搜尋機器人有點討厭,各個網站不但不會再象從前一樣把它封起來,反而熱情無比地搞SEO,所謂的面向搜尋引擎的最佳化,其中就包括訪問地址的改寫,令動態網頁看上去是靜態網頁,以便更多更大量地被搜尋引擎收錄,從而最大限度地提高自已的內容被目標接收的機會。但是,在完全以動態技術開發的網站,轉眼中要求變換成靜態網頁提供,同時,無論如何,動態網頁的內容管理功能也是必須保留的;就如同一輛飛駛的賓士忽然要求180度轉彎,要付出的成本代價是非常大的,是否真的值得,也確實讓人懷疑。
另一個重要原因就是提高程式性能。很多大型網站,進去的時候看它很複雜的頁面,但是載入也沒有耗費多長時間,除了其它必要原因以外,我認為靜態化也是其中必需考慮的技術之一。她先於用戶獲取資源或資料庫數據進而通過靜態化處理,生成靜態頁面,所有人都訪問這一個靜態頁面,而靜態化處理的頁面本身的訪問速度要較動態頁面快很多倍,因此程式性能會有大大的提升。總之靜態化在頁面上的體現為:訪問速度加快,用戶體驗性明顯提升;在後台體現為:訪問脫離資料庫,減輕了資料庫訪問壓力。
靜態化雖然可以提升程式的性能,但是它並不是提升整體性能的根本原因,就像一台電腦,只有CPU好或顯示卡好,記憶體好,是不行的,要看整體性能。很多時候是開發者的原因,導致程式自身性能不佳,所以最好以項目本身性能為基礎,其它最佳化方法為輔,最終提升整個應用程式的性能。
動態變靜態
方法一:使用現成的外掛程式,比如:ISAPI_Rewrite、IIS Rewrite、Apache HTTP伺服器的mod_rewrite等,它們都是基於正則表達式解析器開發的重寫引擎。它們的使用方法查看它們自帶的幫助即可。
方法二:自己寫的代碼實現動態網頁靜態化,方法也有好幾種:
1創建FSO對象,利用此對象將所需的內容動態創建到檔案中生成HTML頁面;
2利用模板技術,將模板中特殊代碼的值替換為從表單或是資料庫欄位中接受過來的值 生成HTML檔案
3使用Server.Transfer轉換技術,
方法三:使用HttpWebRequest請求客戶端的方式,獲取返回資源,生成靜態頁面。一般這樣只需要獲取網頁內容即可,其它資源可放置在伺服器上,自動載入。(註:此方法缺點明顯,需要大量更改匹配URL,建議慎用)
方法四:在asp中有IhttpModule接口。Ihttpmodule可以簡單理解為一個可以在執行像.aspx,或者mvc中control/action前,添加我們自定義的操作的東西。
我們只需要編寫這么一個HttpModule就可以了,當用戶第一次請求asp處理時,我們可以在ihttpmodule中攔截到這個請求,然後獲取到這次請求應該返回的html代碼,然後我們返回這些html給用戶,並保存剛才我們獲取到的html到檔案內,當用戶下次請求時,我們只需要直接返回我們已經保存的html檔案即可。

相關詞條

熱門詞條

聯絡我們