21CTO 導(dǎo)讀:很多網(wǎng)站為了加快速度,全部生成了靜態(tài)HTML,但是真的需要靜態(tài)化嗎?靜態(tài)頁(yè)面不能有動(dòng)態(tài)內(nèi)容嗎?本文嘗試給大家的一些示例。
我們一起來(lái)對(duì)靜態(tài)頁(yè)下一個(gè)定義,即“頁(yè)面顯示的信息與存儲(chǔ)結(jié)構(gòu)完全一致”。因此,如果要構(gòu)建一個(gè)顯示數(shù)據(jù)庫(kù)信息動(dòng)態(tài)頁(yè)面,需要使用服務(wù)器端語(yǔ)言渲染,如.php/.aspx/.jsp/. 等。
做為一個(gè)Web開(kāi)發(fā)人員,我常常聽(tīng)到“HTML速度快”、“HTML 不能顯示動(dòng)態(tài)內(nèi)容”等,這聽(tīng)起來(lái)似乎有道理,但并不完全正確。
下面我們就討論為什么 HTML 頁(yè)面不是真正的靜態(tài)頁(yè)面。
使用 HTML 頁(yè)面進(jìn)行動(dòng)態(tài)處理
讓我們用 HTML 頁(yè)面進(jìn)行交互式操作,在此處,我們將創(chuàng)建一個(gè)用戶訂閱的功能,大家知道動(dòng)態(tài)網(wǎng)站轉(zhuǎn)成靜態(tài)頁(yè)面,這個(gè)功能在互聯(lián)網(wǎng)上很常見(jiàn)。
該交互功能描述如下:
頁(yè)面上有一個(gè) Email 的文本輸入表單以及提交按鈕,用戶輸入 TA 的郵箱并單擊提交按鈕后,郵件將存儲(chǔ)在數(shù)據(jù)庫(kù)表中,用戶會(huì)收到一條感謝信息。
HTML 頁(yè)面代碼如下:
說(shuō)明:返回的提示消息“謝謝”將顯示在 的 DIV 中。
讓靜態(tài)頁(yè)面靜態(tài)化
下面我們要完成的是,怎樣在數(shù)據(jù)中插入電子郵件并顯示感謝信息,我們采用 庫(kù)來(lái)實(shí)現(xiàn)。
使用捕獲事件即可,事件上調(diào)用 的 Ajax 方法,將郵件地址發(fā)布到 PHP 腳本。
以下是我們的 代碼:
來(lái)說(shuō)明一下,在上面的 方法中,我們將 url 的鍵值傳遞給 .php 頁(yè)面,此頁(yè)面將接收郵件的內(nèi)容。
即 data 的值,詳細(xì)請(qǐng)看上碳的 Ajax 代碼,用戶的郵件將以鍵值方式發(fā)送。
Ajax 請(qǐng)求完居后,PHP將返回 給回調(diào)函數(shù),我把該回調(diào)函數(shù)從 PHP 頁(yè)面接收到的值,寫(xiě)入在 的 div 中。
如果在 Ajax 調(diào)用期間出現(xiàn)一些錯(cuò)誤,則調(diào)用“error”段的回調(diào)函數(shù)。
下面是我們的 PHP頁(yè)面內(nèi)容:
我在PHP腳本節(jié)省了一些代碼,聰明的讀者可以自行完成。它主要的任務(wù)就是接收電子郵件值,將它插入數(shù)據(jù)庫(kù),然后返回成功等消息。
至此,我們的代碼部分到此結(jié)束。
現(xiàn)在,如果哪個(gè)開(kāi)發(fā)人員告訴你HTML頁(yè)面不能用于顯示動(dòng)態(tài)內(nèi)容,請(qǐng)禮貌地告訴那個(gè)人,還有另一種方式!
我們使用 Ajax,HTML頁(yè)面可以像服務(wù)器頁(yè)面一樣工作動(dòng)態(tài)網(wǎng)站轉(zhuǎn)成靜態(tài)頁(yè)面,人們可以方便的使用,用HTML頁(yè)面直接創(chuàng)建任何類型的數(shù)據(jù)庫(kù)應(yīng)用程序。
愿大家編碼愉快,不要忘記點(diǎn)贊本教程!~