天天看點

Web開發的十個原則

web(網站)開發的十個原則:

(1)能在前端校驗的就盡量在前端校驗

 比如上傳圖檔,在背景也可以校驗:判斷multipartfile 是否為空.但是也可以直接在前台js校驗:

Web開發的十個原則

<script type="text/javascript">  

var checkuploadform=function(){  

    var uploadfile = com.whuang.hsj.$$one("pic");  

    if (com.whuang.hsj.ishasvalue(uploadfile.value)) {  

        $('#tipsdiv').html("<font color='blue' style='font-weight: bold'  > 正在上傳,請耐心等待...</font>");  

        showloadpanel();  

        return true;  

    } else {  

        alert("請選擇要上傳的檔案.");  

        return false;  

    }  

}  

</script>  

(2)隻要頁面有文本框,則進入頁面時自動聚焦

Web開發的十個原則

$(document).ready(function(){  

   //$('#tbody1 tr:odd').filter(':gt(0)').addclass('odd');  

   $('#tbody1 tr:even').filter(':gt(0)').addclass('even');   

   var itemname22=com.whuang.hsj.$$one("itemname");  

        if(itemname22){  

            itemname22.focus();  

        }  

   //$('#tbody1 td:contains("because of you")').addclass('highlight');  

});  

Web開發的十個原則

window.onload=function(){  

        var itemname22=com.whuang.hsj.$$one("itemname");  

Web開發的十個原則

(3)耗時操作(上傳大檔案,如7m以上圖檔)時一定要有提示

執行耗時任務時一定要有提示,否則不清楚的使用者以為"當機","系統無響應"了.

提示方式有:文字提示,gif動畫提示.

Web開發的十個原則

 下圖是gif提示

Web開發的十個原則

 引用的gif檔案如下:

Web開發的十個原則
Web開發的十個原則
Web開發的十個原則

(4)能不跳轉的就不跳轉

拿登入來舉例,其實登入時有些校驗可以在頁面js中校驗,但是使用者名,密碼的校驗就必須送出到伺服器背景校驗了,一般情況下會同步地發送請求,是以會有跳轉.

跳轉有兩個麻煩事,一是螢幕會閃一下,二是填寫的資訊都沒有了(浏覽器自動儲存的情況不在此列).

校驗使用者名密碼時也可以不跳轉,如何實作呢?

使用ajax

Web開發的十個原則

function ajaxlogin(){  

    var usernameobj=com.whuang.hsj.$$one('username');  

    var passwordobj=com.whuang.hsj.$$one('password');  

var loginresultspan=com.whuang.hsj.$$id("loginresult");  

    if(!com.whuang.hsj.ishasvalue( usernameobj.value)){  

        com.whuang.hsj.seterrormessage(usernameobj,loginresultspan,'請填寫使用者名.',false);  

        var password_value='';  

    if(passwordobj.value.trim)  

    {  

         password_value=passwordobj.value.trim();  

         password_value=com.whuang.hsj.trim(passwordobj.value);  

    if(!com.whuang.hsj.ishasvalue( password_value)){  

        com.whuang.hsj.seterrormessage(passwordobj,loginresultspan,'請填寫密碼.',false);  

        passwordobj.value='';  

    if(password_value.length<=20)  

        passwordobj.value=calcmd5(password_value);  

        com.whuang.hsj.seterrormessage(passwordobj,loginresultspan,'密碼過長',false);  

    var abc44=function (obj) {  

    //  alert(obj);  

        var jsonobj2=eval("("+obj+")");  

        // alert(obj)  

        var loginresult=jsonobj2.result;  

        if(loginresult=='failed'){  

            com.whuang.hsj.seterrormessage(usernameobj,loginresultspan,jsonobj2.error,false);  

            passwordobj.value='';  

        }else{  

            location.href="<%=path%>/orders/list";  

    };  

    var url2="<%=path%>/index/login";  

    //alert(url2);  

    var xmlhw5=new xmlhttphuangwei(url2, "username="+usernameobj.value+"&password="+passwordobj.value,abc44);  

    xmlhw5.xmlgetmethod();  

(5)盡量不要彈框,采用span/div提示

一般提示錯誤時采用alert,但是alert多了是不是感覺很煩,為什麼?必須要你點選一下才能消失.

現在的趨勢是采用span/div顯示錯誤資訊,如下圖

Web開發的十個原則

(6)可擴充性和可重用性

我們寫js代碼時也要考慮到重用性,通俗一點說,就是相同的代碼不要出現兩次.

我從工作時起,就注意代碼可重用性,不斷的封裝成方法,因為方法就是可重用性的最小粒度,然後就是架構了.

至今我自己維護的一個js檔案已有1700行,

Web開發的十個原則

 可重用性是一個思維方式,類似于舉一反三,觸類旁通.不僅寫代碼,做其他事也需要考慮可重用性.比如我們接了項目,我們可能當做一錘子買賣,不考慮可重用性,隻要完成功能就行.

其實我們還有另外一種做法,我們可以把它做得很靈活,子產品化,便于重用.這樣下次我們接到類似的項目時,就可以直接套用了.這樣會節省很大的成本.

(7)通路沒有權限的頁面會跳轉到登入頁面,登入成功之後應直接進入剛才欲通路的頁面

比如我沒有登入就通路 http://192.168.1.125:8080/yhyc/product/list

會跳轉到登入頁面:

Web開發的十個原則

 此時我輸入使用者名和密碼,登入成功之後應直接進入剛才我想通路的位址:http://192.168.1.125:8080/yhyc/product/list

(8)能點選的地方一定要差別

比如滑鼠移動到上面時變成手型或樣式有變化等.

Web開發的十個原則

 代碼:

Web開發的十個原則

<img style="cursor:hand;" src="assets/uploads/product/imgpath_1414232682_1440.jpg" height="160px" width="250px" onclick="viewbigpic(this,event)">  

 style="cursor:hand;" 表示滑鼠移動到上面時光标變成手型.

(9)web項目的樣式必須統一

網站的樣式必須統一,不要有的頁面是藍色風格,有的頁面是紅色風格.

反例:

一個頁面對應一個css樣式檔案

Web開發的十個原則

 這樣就有一個嚴重的問題:

(a)每個頁面對應一個css檔案,風格很難統一;

(b)改變風格時難度很大,因為每個檔案都得改一遍.

Web開發的十個原則

 以上這種寫法就非常不好,容易造成樣式不統一,以後要改樣式,就需要改兩個地方.

 (10),删除時不要真正地删除

Web開發的十個原則

設一個标志位就行