典型的超文件在靜態式網頁中跳躍式閱讀,網頁用戶 (訪客) 的經驗都屬於 HTML 形式的靜態式網頁‧但是,網頁內容包括內文、圖像、表格欄位,都可依連結或狀況,也可以動態展示‧
採用動態式網頁的時機
動態式網頁是靜態式網頁以外的一種選擇‧當網頁須要速成時或網頁有時效性,是採用動態式網頁的最佳時機‧新聞網頁須要簡單快速的作成,商品拍賣的網頁往往只生存一、二週的時間,只有幾頁內容的新網站須要很短時間開張,都很適合採用動態式網頁‧
選擇動態式網頁注意事項
動態式網頁往往難以被搜尋引擎載入索引;伺服器如果沒有做好安全把關,伺服器端程式可能非常容易被攻陷‧如果要選擇動態式網頁,伺服器要有較好的硬體環境 — 多個 CPU 及較大的隨機存取記憶體 (RAM);最重要的是較好的「網路安全」規劃,以及應用伺服器端程式時,更注重程式的安全面‧
動態式網頁的技術面
網頁內容的動態展示,有下列兩種形式:
- 客戶端程式執行:網頁下載時內含程式稿,利用用戶端的程式,回應訪客的滑鼠、鍵盤輸入或間隔時間,來執行網頁內容的展示‧
- 伺服器端程式執行:先載入網頁的程式稿,依序執行並傳送給訪客瀏覽器展示 ‧伺服器的回應根據 HTML 表格傳送的資料,URL 內的參數,瀏覽器型式,時間經過,資料庫及伺服器當時的狀況而定‧
最終產生的結果可能是其中一種或兩種同時執行‧
客戶端程式執行
在客戶端執行的程式意義很廣,基本上伺服器摘取網頁原始內容並就這樣的傳送給瀏覽器,瀏覽器 (在訪客端) 接著執行網頁裡內嵌的程式,(通常是 javascript),然後展示網頁‧ 在客戶端執行程式的缺點如下:
- 某些瀏覽器沒有支援某些語言,或沒有全面支援‧
- 某些國家的網際網路頻寬不足,在瀏覽器端執行程式有困難,例如 Flash 須使用遠端程式,頻寬不足造成展示困難‧
- 程式執行後產生的資訊僅能儲存於用戶的電腦,統計資料的收集有困難‧
- 搜尋引擎不能執行客戶端程式,無法「搜括」客戶端程式產生的連結,例如 DHTML 產生的連結只能夠在客戶端 (瀏覽器) 上展示並使用‧
- 某些用戶擔心「網路安全」,關閉他們電腦上的某些程式語言‧
伺服器端程式執行
伺服器端程式執行比較複雜:
- 瀏覽器送出 HTTP 要求
- 伺服器載入網頁的程式稿,
- 伺服器執行程式稿或程式,產生 HTML 網頁‧
- 伺服器將產生的 HTML 網頁傳送給訪客的瀏覽器展示
伺服器端程式包括 SSI (Server Side Includes)、PHP、Perl、 ASP or ASP.NET、JSP、和其他程式語言‧伺服器端程式執行對伺服器產生壓力,用掉較多的 CPU 和隨機存取記憶體的空間,使伺服器回應變慢‧繁忙的搜尋引擎常使伺服器更忙,但卻不耐久等 (timeout 很短),沒有「搜括」到網頁就離開‧伺服器如果沒有做好安全把關,伺服器端程式可能非常容易攻陷‧
為何要用動態式網頁
- 大型網站只用 HTML 網頁會累死人
- 利用動態式網頁,可建立訪客互動的論壇及聊天室
- 利用動態式網頁,可將訪客分類分得更細,便於對特定群組或個別用戶,提供加值服務
- 網站內容資源,更容易詳細分類
- 用很少數的網頁就可以叫出一大堆資料
- 更新及維護網站,不須要特別技術,普通人就可以管理
- 很多免費的「開放原始碼」的 PHP 軟體垂手可得,並允許任何人在自己網站任務新增、修改、自訂軟體程式或內含的模組
相容:動態、靜態式網頁互相包容
動態和靜態式網頁完全沒有排他性‧動態式網頁內可以 「引入」靜態網頁;同樣的,靜態式網頁也可以包含動態網頁‧在 HTML 網頁中,Server Side Includes (SSI) 可說是古老,但迄今仍然普遍使用的「動態網頁內容」‧在 PHP 程式稿中,Include() [或 Include_once()] 等 function 可以輕易的將 HTML 的內容納入‧
1 個意見,到目前為止 ↓
如果網頁幾年內都沒有「過期」的問題的話,顯然靜態網頁比較適合,使用的資源比較少,自然反應較快‧現在的訪客的耐心十分有限,幾秒鐘都不願意等;搜尋引擎也可以多搜括幾頁‧Server Side Includes (SSI) 用在靜態網頁中作「動態網頁內容」,是一個小模組,不大會影響網頁的展示 (下載) 速度‧