Web(网站)开发的十个原则:
(1)能在前端校验的就尽量在前端校验
比如上传图片,在后台也可以校验:判断MultipartFile 是否为空.但是也可以直接在前台js校验:
<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)只要页面有文本框,则进入页面时自动聚焦
$(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'); });
window.onload=function(){ var itemname22=com.whuang.hsj.$$one("itemname"); if(itemname22){ itemname22.focus(); } }
(3)耗时操作(上传大文件,如7M以上图片)时一定要有提示
执行耗时任务时一定要有提示,否则不清楚的用户以为"死机","系统无响应"了.
提示方式有:文字提示,gif动画提示.
下图是gif提示
引用的gif文件如下:
(4)能不跳转的就不跳转
拿登录来举例,其实登录时有些校验可以在页面js中校验,但是用户名,密码的校验就必须提交到服务器后台校验了,一般情况下会同步地发送请求,所以会有跳转.
跳转有两个麻烦事,一是屏幕会闪一下,二是填写的信息都没有了(浏览器自动保存的情况不在此列).
校验用户名密码时也可以不跳转,如何实现呢?
使用Ajax
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); return false; } var password_value=''; if(passwordObj.value.trim) { password_value=passwordObj.value.trim(); } else { password_value=com.whuang.hsj.trim(passwordObj.value); } if(!com.whuang.hsj.isHasValue( password_value)){ com.whuang.hsj.setErrorMessage(passwordObj,loginResultSpan,'请填写密码.',false); passwordObj.value=''; return false; } if(password_value.length<=20) { passwordObj.value=calcMD5(password_value); } else { com.whuang.hsj.setErrorMessage(passwordObj,loginResultSpan,'密码过长',false); passwordObj.value=''; return 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显示错误信息,如下图
(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)能点击的地方一定要区别
比如鼠标移动到上面时变成手型或样式有变化等.
代码:
<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),删除时不要真正地删除
设一个标志位就行
相关推荐
标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...
OpenBMC WEBUI 开发文档 OpenBMC WEBUI 开发文档是 ...OpenBMC WEBUI 开发文档提供了一个完整的指南来帮助开发者创建高质量的 WEBUI 应用程序,涵盖了现代化、可访问性、翻译、国际化、Vue 开发、文档化和贡献等方面。
总之,Java Web开发涵盖了服务器端编程、数据库操作、前端交互、应用架构等多个方面,开发者需要掌握一系列技术和工具来构建高效、可靠的Web应用程序。通过理解并运用上述知识点,可以提升开发效率,创建出满足现代...
安全开发需要注意的9大原则,为了系统的安全,我们在开发过程中必须注意系统的安全开发原则,减小开发出来的系统被攻击的风险。9大安全原则分别是1web部署原则、身份认证原则、会话管理原则、权限管理原则、敏感数据...
"PythonWeb开发案例教程_源代码.zip"这个压缩包包含了整个教程的实践代码,这将帮助你更好地跟随教程的步伐,亲手操作每一个示例,加深对理论知识的理解。 Python Web开发主要依赖于一些强大的框架,如Django、...
Django是一个高级的Python Web框架,它鼓励快速开发并且遵循MVC(Model-View-Controller)设计原则。Django的主要目标是简化Web开发的过程,同时提供强大的功能,以促进开发人员编写可维护且可复用的代码。本书...
3. **Rails框架详解**:Ruby on Rails(简称Rails)是一个基于MVC(模型-视图-控制器)架构模式的开源Web开发框架,它提倡DRY(Don't Repeat Yourself)和Convention Over Configuration的原则。书中详细阐述了Rails...
在“Web开发实例PPT”中,我们主要探讨的是如何运用Web技术来构建实际的业务系统,例如人事管理系统和购物广场商务系统。这些项目案例涵盖了Web开发的核心知识点,旨在帮助开发者提升技能,理解如何将理论知识应用于...
10. **Web安全**:包括身份验证、授权、防止SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等,是Java Web开发中不容忽视的重要环节。 11. **部署与容器**:Tomcat、Jetty等Web应用服务器的使用,以及在云...
2. Web技术:Java Web开发的一个核心部分是了解Web技术。这包括HTML、CSS和JavaScript等前端技术,以及用于构建动态网页和Web应用程序的服务器端技术,如Servlet、JavaServer Pages (JSP)、Java EE(现在称为Jakarta...
这个压缩包文件的主题聚焦于“精通JavaJDK、数据库系统开发以及Web开发程序源文件”,这暗示了它包含了一系列用于学习和实践这三个核心领域的资源。下面我们将深入探讨这些关键知识点。 1. **JavaJDK**: JavaJDK...
### Go语言Web开发知识点概述 #### 一、Go语言简介 Go语言,也称为Golang,是由Google设计的一种静态类型的编程语言。它以其简洁的语法、高效的性能以及强大的并发处理能力而著称,在网络编程领域得到了广泛的应用...
它不仅涵盖了基础理论,还深入到了实际项目构建的各个环节,旨在帮助读者从零开始,逐步成为一个全面掌握Web开发技能的专业人士。 在Python Web开发中,核心知识点主要包括以下几个方面: 1. **Python基础**:...
除了基本的Web开发技术,"Python Web开发实战"还可能涵盖了API设计、RESTful原则,以及如何使用JSON进行数据交换。对于前端交互,可能会介绍HTML、CSS和JavaScript的基本知识,以及如何与后端Python代码进行通信,如...
【企业级WEB开发资料】是一份综合性的资源集合,涵盖了企业级WEB开发的多个关键领域。这份资料旨在提供实用的技术开发方案,特别是针对JAVA设计与模式的深入理解,以提升开发人员在WEB应用开发中的专业技能。 在...
Python Web开发是现代互联网行业中一个不可或缺的技能,尤其对于前端工程师而言,理解并掌握Python Web开发技术至关重要。本文将深入探讨Python在Web开发中的应用,包括基础概念、常用框架、开发流程以及实战技巧。 ...
学习HTML5和CSS3的移动Web开发,你需要理解新元素的用法,熟悉新的API接口,掌握响应式设计的原则,以及如何利用CSS3来提升用户体验。这个压缩包中的资源将是你学习过程中宝贵的实践材料。你可以逐个案例进行研究,...
**MVC(Model-View-Controller)架构模式是Web开发中的一个重要概念,它将应用程序的逻辑分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。在本" MVC Web开发学习实录"中,我们将会深入探讨这...
Web 前端开发规范手册 摘要:本手册旨在提高团队协作效率、便于后台人员添加功能及前端后期优化维护,输出高质量的文档。本手册涵盖了文件规范、CSS 书写规范、html 书写规范、JavaScript 书写规范、图片规范、注释...