Web开发的十个原则

简介:

Web(网站)开发的十个原则:

(1)能在前端校验的就尽量在前端校验

 比如上传图片,在后台也可以校验:判断MultipartFile 是否为空.但是也可以直接在前台js校验:

Js代码   收藏代码
  1. <script type="text/javascript">  
  2. var checkUploadForm=function(){  
  3.     var uploadFile = com.whuang.hsj.$$one("pic");  
  4.     if (com.whuang.hsj.isHasValue(uploadFile.value)) {  
  5.         $('#tipsDiv').html("<font color='blue' style='font-weight: bold'  > 正在上传,请耐心等待...</font>");  
  6.         showLoadPanel();  
  7.           
  8.         return true;  
  9.     } else {  
  10.         alert("请选择要上传的文件.");  
  11.         return false;  
  12.     }  
  13. }  
  14.   
  15. </script>  

 

(2)只要页面有文本框,则进入页面时自动聚焦

Js代码   收藏代码
  1. $(document).ready(function(){  
  2.    //$('#tbody1 tr:odd').filter(':gt(0)').addClass('odd');  
  3.    $('#tbody1 tr:even').filter(':gt(0)').addClass('even');   
  4.    var itemname22=com.whuang.hsj.$$one("itemname");  
  5.         if(itemname22){  
  6.             itemname22.focus();  
  7.         }  
  8.    //$('#tbody1 td:contains("Because of you")').addClass('highlight');  
  9. });  

 

Js代码   收藏代码
  1. window.onload=function(){  
  2.           
  3.         var itemname22=com.whuang.hsj.$$one("itemname");  
  4.         if(itemname22){  
  5.             itemname22.focus();  
  6.         }  
  7. }  

 

 

 

(3)耗时操作(上传大文件,如7M以上图片)时一定要有提示

执行耗时任务时一定要有提示,否则不清楚的用户以为"死机","系统无响应"了.

提示方式有:文字提示,gif动画提示.

 下图是gif提示



 引用的gif文件如下:



 

 
 

 

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

登录来举例,其实登录时有些校验可以在页面js中校验,但是用户名,密码的校验就必须提交到服务器后台校验了,一般情况下会同步地发送请求,所以会有跳转.

跳转有两个麻烦事,一是屏幕会闪一下,二是填写的信息都没有了(浏览器自动保存的情况不在此列).

校验用户名密码时也可以不跳转,如何实现呢?

使用Ajax

Js代码   收藏代码
  1. function ajaxLogin(){  
  2.     var usernameObj=com.whuang.hsj.$$one('username');  
  3.     var passwordObj=com.whuang.hsj.$$one('password');  
  4. var loginResultSpan=com.whuang.hsj.$$id("loginResult");  
  5.     if(!com.whuang.hsj.isHasValue( usernameObj.value)){  
  6.         com.whuang.hsj.setErrorMessage(usernameObj,loginResultSpan,'请填写用户名.',false);  
  7.         return false;  
  8.     }  
  9.   
  10.         var password_value='';  
  11.     if(passwordObj.value.trim)  
  12.     {  
  13.          password_value=passwordObj.value.trim();  
  14.     } else {  
  15.          password_value=com.whuang.hsj.trim(passwordObj.value);  
  16.     }  
  17.     if(!com.whuang.hsj.isHasValue( password_value)){  
  18.   
  19.         com.whuang.hsj.setErrorMessage(passwordObj,loginResultSpan,'请填写密码.',false);  
  20.         passwordObj.value='';  
  21.         return false;  
  22.     }  
  23.     if(password_value.length<=20)  
  24.     {  
  25.         passwordObj.value=calcMD5(password_value);  
  26.     } else {  
  27.         com.whuang.hsj.setErrorMessage(passwordObj,loginResultSpan,'密码过长',false);  
  28.         passwordObj.value='';  
  29.         return false;  
  30.     }  
  31.   
  32.   
  33.     var abc44=function (obj) {  
  34.     //  alert(obj);  
  35.         var jsonObj2=eval("("+obj+")");  
  36.           
  37.         // alert(obj)  
  38.   
  39.         var loginResult=jsonObj2.result;  
  40.         if(loginResult=='failed'){  
  41.               
  42.             com.whuang.hsj.setErrorMessage(usernameObj,loginResultSpan,jsonObj2.error,false);  
  43.             passwordObj.value='';  
  44.         }else{  
  45.             location.href="<%=path%>/orders/list";  
  46.         }  
  47.           
  48.   
  49.     };  
  50.       
  51.     var url2="<%=path%>/index/login";  
  52.     //alert(url2);  
  53.     var xmlhw5=new XMLHttpHuangWei(url2, "username="+usernameObj.value+"&password="+passwordObj.value,abc44);  
  54.     xmlhw5.XMLGetMethod();  
  55. }  

 

(5)尽量不要弹框,采用span/div提示

一般提示错误时采用alert,但是alert多了是不是感觉很烦,为什么?必须要你点击一下才能消失.

现在的趋势是采用span/div显示错误信息,如下图

 

(6)可扩展性和可重用性

殊不知现在有很多js框架,比如jQuery,dojo等.框架是干嘛的?说白了就是避免和减少重复劳动.所以我开玩笑,这些框架都是懒人创造的.

我们写js代码时也要考虑到重用性,通俗一点说,就是相同的代码不要出现两次.

我从工作时起,就注意代码可重用性,不断的封装成方法,因为方法就是可重用性的最小粒度,然后就是框架了.

至今我自己维护的一个js文件已有1700行,



 可重用性是一个思维方式,类似于举一反三,触类旁通.不仅写代码,做其他事也需要考虑可重用性.比如我们接了项目,我们可能当做一锤子买卖,不考虑可重用性,只要完成功能就行.

其实我们还有另外一种做法,我们可以把它做得很灵活,模块化,便于重用.这样下次我们接到类似的项目时,就可以直接套用了.这样会节省很大的成本.

 

(7)访问没有权限的页面会跳转到登录页面,登录成功之后应直接进入刚才欲访问的页面

比如我没有登录就访问 http://192.168.1.125:8080/yhyc/product/list

会跳转到登录页面:

 此时我输入用户名和密码,登录成功之后应直接进入刚才我想访问的地址:http://192.168.1.125:8080/yhyc/product/list

 

(8)能点击的地方一定要区别

比如鼠标移动到上面时变成手型或样式有变化等.



 代码:

Java代码   收藏代码
  1. <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样式文件

 这样就有一个严重的问题:

(a)每个页面对应一个css文件,风格很难统一;

(b)改变风格时难度很大,因为每个文件都得改一遍.

 以上这种写法就非常不好,容易造成样式不统一,以后要改样式,就需要改两个地方.

 

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



 

设一个标志位就行

相关文章
|
1月前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
40 1
|
23天前
|
数据可视化 图形学 UED
只需四步,轻松开发三维模型Web应用
为了让用户更方便地应用三维模型,阿里云DataV提供了一套完整的三维模型Web模型开发方案,包括三维模型托管、应用开发、交互开发、应用分发等完整功能。只需69.3元/年,就能体验三维模型Web应用开发功能!
43 8
只需四步,轻松开发三维模型Web应用
|
13天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
55 6
|
12天前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
36 3
|
13天前
|
JSON API 数据库
从零到英雄?一篇文章带你搞定Python Web开发中的RESTful API实现!
在Python的Web开发领域中,RESTful API是核心技能之一。本教程将从零开始,通过实战案例教你如何使用Flask框架搭建RESTful API。首先确保已安装Python和Flask,接着通过创建一个简单的用户管理系统,逐步实现用户信息的增删改查(CRUD)操作。我们将定义路由并处理HTTP请求,最终构建出功能完整的Web服务。无论是初学者还是有经验的开发者,都能从中受益,迈出成为Web开发高手的重要一步。
36 4
|
14天前
|
前端开发 开发者 UED
探索现代Web开发中的响应式设计原则
【9月更文挑战第21天】 在数字化时代,Web页面的响应式设计已成为开发者必备的技能之一。本文将通过浅显易懂的语言和生动的比喻,带你了解响应式设计的精髓,并结合代码示例,展示如何在实际项目中运用这些原则。我们将从基础出发,逐步深入,确保你能够掌握并应用这些知识,让你的网页在不同设备上都能展现出最佳的用户体验。
|
11天前
|
开发框架 JSON 缓存
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
在数字化浪潮推动下,RESTful API成为Web开发中不可或缺的部分。本文详细介绍了在Python环境下如何设计并实现高效、可扩展的RESTful API,涵盖框架选择、资源定义、HTTP方法应用及响应格式设计等内容,并提供了基于Flask的示例代码。此外,还讨论了版本控制、文档化、安全性和性能优化等最佳实践,帮助开发者实现更流畅的数据交互体验。
31 1
|
13天前
|
JSON API 开发者
惊!Python Web开发新纪元,RESTful API设计竟能如此性感撩人?
在这个Python Web开发的新纪元里,RESTful API的设计已经超越了简单的技术实现,成为了一种追求极致用户体验和开发者友好的艺术表达。通过优雅的URL设计、合理的HTTP状态码使用、清晰的错误处理、灵活的版本控制以及严格的安全性措施,我们能够让RESTful API变得更加“性感撩人”,为Web应用注入新的活力与魅力。
30 3
|
13天前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
43 3
|
15天前
|
JSON API 数据格式
深度剖析!Python Web 开发中 RESTful API 的每一个细节,你不可不知的秘密!
在 Python Web 开发中,RESTful API 是构建强大应用的关键,基于 Representational State Transfer 架构风格,利用 HTTP 卞性能。通过 GET、POST、PUT 和 DELETE 方法分别实现资源的读取、创建、更新和删除操作。示例代码展示了如何使用 Flask 路由处理这些请求,并强调了状态码的正确使用,如 200 表示成功,404 表示未找到资源等。
38 5
下一篇
无影云桌面