在User方面看,整個Student Handbook只會有兩個頁面: Login Page和Main Page。Login Page整個頁面都是登入的東東,其他工作都會在Main Page進行。現在我們有兩個選擇。
- 每頁都要載入相同的標題和目錄,不同的是中間的內容。如何實作:
- Main Page會載有標題和目錄,中間的內容是以get收到的內容而有所不同。
- 中間的內容以如下的php碼實作:
include($page); - 所有的get和post都可以在自己的php內收到,不用修改Main page來處理。
- 標題和目錄只載入一次,只變更中間的內容。如何實作:
- Main Page會載有標題和目錄,中間的內容是以呼叫javascript的goPage(pageURL,{method: get/post, parameters: })來達成。
- 所有的get和post都可以在自己的php內收到,不用修改Main page來處理。
- 你們要在form tag加入如下的code:
如果用get:
<form ... onsubmit="submitForm('action.php',false,this)">
如果用post:
<form ... onsubmit="submitForm('action.php',true,this)"> - 超連結要改為:
<a href="#" onclick="goPage('test.html',null)">test page</a> - 變更的內容以如下的javascript實作:
function goPage(pageURL, submitParms){
new Ajax.Updater('mainarea', pageURL, submitParms==null?({method: get}):submitParms);
return false;
} - submitForm程式碼如下:
function submitForm(pageURL, postMethod, form){
if(postMethod){goPage(pageURL , {method: "post", parameters: form.serialize()});
}else{
goPage(pageURL+"?"+form.serialize() , {method: "get"});
}
return false;
}
- 兩種實作方法比較:
- 方法1在大多數的網站使用中,因為在沒有AJAX的時代,要做到一致的使用介面,只有不停把相同的東西重新載入。不過因為他們多數使用圖片才不覺有重新載入的感覺。
- 方法2由於是較新的科技,使用的地方不多,暫時只看到Foum會用AJAX來檢查註冊帳號名稱、瀏覽同一主題的回應等。
- 方法1的優點是設計簡單,但是伺服器的流量會較高,因為要載入重覆的資料。
- 方法1的缺點是設計較複雜,但是伺服器的流量會較低,因為只須把不同的地方載入便可以了。
- 伺服器的流量低有何好處?
- 減輕伺服器負荷,可應付更多人流。
- 佔用的頻寬少,縮短等候時間。56K上網都可以有華麗介面。
沒有留言:
張貼留言