网站首页 > 技术文章 正文
你是不是觉得这篇文章的标题太扯蛋了,前端页面还用得着面向对象方式编写?自从学习网站开发以来,从相关书籍或代码看到的都是将php(或者c#或者其它)代码、js代码、html标签写在一个页面里。浏览器获取页面时,服务器先将php代码跑一遍再把结果传回浏览器,粗看这么做好像没毛病,而且自己最开始开发网站也是这么做的。但随着网站规模越来越大,功能越来越复杂,这么做会导致页面太过繁杂,扩展、维护相当麻烦,访问量一大的话会导致后端忙不过来,页面卡死用户体验感直线下降。最重要的一点是代码很难重用,开发新的网站话,差不多所有页面都要重写。
不说废话了,下面举个例子,假如要实现一个从数据库读取公司用户数据并显示出来的页面,类似下面的前端页面,考虑一下该如何实现(大家先想一下)。
下面说说我的实现方法(不一定最好,你有更好的方法请留言)
一、功能分析
简单来说,这个页面就三大功能,1、从数据库读取数据;2、显示数据;3、在不同的页面切换。那么可以将这三个功能抽象为三个对象——Dataset对象、List对象和Pagecode对象,关系如下图所示:
二、对象功能实现
1、Dataset对象,如其名,主要实现以ajax方式从数据库中读取数据;一旦读取数据以通用格式返回,如下:
res:{
rows:12,
data:[
{Col1:"值",Col2:"值"……,Coln:"值"},
……,
{Col1:"值",Col2:"值"……,Coln:"值"}
]
}
2、List对象,负责数据以列表方式显示;显示之前会将数据格式化为页面所需形式(即将数据分行、分列),Dataset返回的通用数据已直接包含总数据行数,那么当前页面有多少行数据、每行数据有多少列呢?大家开动小脑筋想一想。
3、PageCode对象负责翻页。用户可以点击前后页按钮或者直接在页码列表框选择相应页面。一旦改变当前页面,Dataset对象重新读取数据(起止数据编号根据PageCode对象相应值计算,传给SELECT语句LIMIT)
三、动手撸代码
将相关功能对象化后,前端页面代码立刻清爽了许多,不信?请看代码
请注意这一行代码:
<body onload="pccmain()">
所有的初始化、实现逻辑都在那个pccmain()函数里,下面我们来看一看此函数的代码
只有5行代码,创建了3个对象,页面所有的功能都靠这3个对象实现!你也许迫不急待想看看这3个对象详细的实现代码,你越想看就越不给你看(先卖个关子),以后会详细讲解相关代码的。
也许你觉得管它页面代码如何编写,只要功能实现就行了,复制、粘贴一下,以前的代码又不是不可以用……没错,虽然实现功能的方法不止一种,但尽量要选让用户体验感佳、维护者爽的那种。
未完待续,请继续关注后续文章。
猜你喜欢
- 2024-10-24 ABAP面向对象之单例模式(Singleton Pattern)
- 2024-10-24 什么是面向对象编程? 什么是面向对象编程?它与面向过程编程有什么区别
- 2024-10-24 系统建设的脊柱:表对象建模 建立表对象的表间关系
- 2024-10-24 Python基础-Python面向对象编程 python面向对象的基本概念
- 2024-10-24 几种常用关系型数据库介绍 关系型数据库大全
- 2024-10-24 如何理解python中面向对象里面的单例模式?
- 2024-10-24 如何通俗易懂理解Python类和面向对象?
- 2024-10-24 盛齐讲软考系规:什么是面向对象的基本概念
- 2024-10-24 学习笔记——面向对象(类与对象) 面向对象的类和对象
- 2024-10-24 「高项笔记」 面向对象分析 面向对象分析总结
你 发表评论:
欢迎- 最近发表
-
- 吴谨言专访大反转!痛批耍大牌后竟翻红,六公主七连发力显真诚
- 港股2月28日物业股涨幅榜:CHINAOVSPPT涨1.72%位居首位
- 港股2月28日物业股午盘:CHINAOVSPPT涨1.72%位居首位
- 港股3月2日物业股涨幅榜:CHINAOVSPPT涨1.03%位居首位
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%
- 天赋与心痛的背后:邓鸣贺成长悲剧引发的深刻反思
- 冯小刚女儿徐朵追星范丞丞 同框合照曝光惹人羡,回应网友尽显亲民
- “资本大佬”王冉:51岁娶小17岁童瑶,并承诺余生为娇妻保驾护航
- 港股3月2日物业股午盘:CHINAOVSPPT涨1.03%位居首位
- 「IT之家开箱」vivo S15 图赏:双镜云窗,盛夏风光
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)