一个古老的后台管理系统

之前就使用过react+Ant Design、vue+ElementUI这两种架构开发前端项目,最近又有幸遇到一种新的架构方式:jQuery+AresUI,于是冒出了一些感想,有了这篇文章。

工作至今,我发现我开发过的几款后台管理系统,它们的页面结构和功能基本上是一样的。如图:

每个页面的结构就是导航+内容,内容部分大致分为表单+表格 ;功能上则细分为数据的增删改查、导入导出、下载等。

它们的区别只在于前端使用的框架样式库 (UI)的不同。

说起前端框架和UI库,现在主流的都是使用reactvue ,jQuery基本没有多少学习的价值,但是我觉得它还是很有研究价值 的,毕竟它曾经在前端史上赫赫有名👍。

我在接手开发这个项目,然后陆续接需求差不多两年的时间内,除了提升使用jQuery API的熟练度外,我总结了一下,主要有以下收获:

  1. 更清楚的看到html、css、js的交互 ,以及组织这些文件的方式
  2. 如果用原生的html、css、js组织项目,而不使用框架的话,对它的复杂度有了更清楚的认识
  3. 对使用vue、react这些主流框的好处 有了更深刻的理解

先来说说这个项目,有哪些特点

  1. 它是通过jQuery API来处理页面逻辑的。
  2. 它使用AresUI样式库(一直没找到官网,猜测它应该是很古老的UI库,也没怎么维护了吧,如果有朋友知道,麻烦告诉一下,表示感谢!)。
  3. 没有路由功能 ,而是采用内嵌iframe标签 的方式做局部替换 ,在点击左侧导航时,更改iframe标签的name属性 ,把各个html页面嵌入到主页面 中,这也导致切换后的渲染存在bug,因为是内部使用,一直未处理。
  4. 需要用到的第三方库,都通过直接下载的js文件引入 ,特别是在html中对这些js文件的引入顺序还有要求

再来看看这个项目,有哪些问题

这是html页面的目录(一部分):

这么多页面,没有组件化的情况下,冗余代码是极多的,有些功能改变时每个页面都得改,心累!

这是其中某个html页面的代码:

可以看到,引入了很多的css和js文件(且它们都是静态的),这样的组织方式就会带来问题,比如样式的覆盖 和js引入顺序不同导致某些数据找不到

这是某段插入表格的代码:

大家可能想不到,这300多行,我当初开发了一个星期,大家可能觉得我效率太低了,但是我只能说,这是我做前端以来写的最麻烦的代码了,用原生js创建表格再插入到DOM中的需求,我再也不想遇到了。

iframe标签嵌入页面会带来页面错乱的问题

正常是这样展示的:

但是有时会出现这样的情况:

具体原因不明,查了一些资料,只知道页面嵌入内容的这种方式,很早就已经存在了,iframe还是比较先进的做法🐶(当然在vue、react等主流的框架中没必要使用)。

嵌入简史

很久以前,很流行在网络上使用框架创建网站------网站的一小部分存储于单独的 HTML 页面中。这些被嵌入在一个称为框架集的主文档中,它允许你指定每个框架能够填充在屏幕上的区域,非常像调整表格的列和行的大小。这些做法在 90 年代中期至 90 年代后期被认为是比较酷的,有证据表明,将网页分解成较小的块,这样有利于下载速度------尤其是在那时网络连接速度太慢的情况下更为明显。然而,这些技术有很多问题,随着网络速度越来越快,这些技术带来的问题远超过它们带来的积极因素,所以你再也看不到它们被使用了。

一小段时间之后(20 世纪 90 年代末,21 世纪初),插件技术变得非常受欢迎,例如 Java Applet 和 Flash------这些技术允许网络开发者将丰富的内容嵌入到网页中,例如视频和动画等,这些内容不能通过 HTML 单独实现。 嵌入这些技术是通过诸如 object 和较少使用的 embed 元素来实现的,当时它们非常有用。由于许多问题,包括无障碍、安全性、文件大小等,它们已经过时了; 如今,大多数移动设备不再支持这些插件,桌面端也逐渐不再支持。

最后,iframe 元素出现了(连同其他嵌入内容的方式,如 canvasvideo 等),它提供了一种将整个 web 页嵌入到另一个网页的方法,看起来就像那个 web 页是另一个网页的一个 img 或其他元素一样。iframe 现在经常被使用。

说了这么多,总结一下:

1. 这是一个古老的项目,使用的技术都不算主流,甚至过时了。之所以没想过用主流的框架重构,是因为它只在内部使用,用户量不大,公司不想投入成本。

2. 这个古老的项目暴露出的很多问题,让我看到了技术之更新迭代的一些轮廓,也意识到了一些学习技术的方式方法:

  • 其一,基础的重要性,无论新老框架,底层都是html、css、js这些基础,无非是解决问题的方式更方便和更全面了,对基础掌握的越深,才能对框架使用的越好。
  • 其二,新技术的敏感性,新技术的流行,必然解决了某些痛点,技术人应该与时俱进,保持学习,这样才能更好的解决问题。
相关推荐
一颗不甘坠落的流星19 分钟前
【Antd】基于 Upload 组件,导入Json文件并转换为Json数据
前端·javascript·json
LYFlied28 分钟前
Vue2 与 Vue3 虚拟DOM更新原理深度解析
前端·javascript·vue.js·虚拟dom
Lucky_Turtle38 分钟前
【Node】npm install报错npm error Cannot read properties of null (reading ‘matches‘)
前端·npm·node.js
小飞侠在吗1 小时前
vue shallowRef 与 shallowReacitive
前端·javascript·vue.js
惜分飞1 小时前
sql server 事务日志备份异常恢复案例---惜分飞
前端·数据库·php
GISer_Jing2 小时前
WebGL实例化渲染:性能提升策略
前端·javascript·webgl
烟锁池塘柳02 小时前
【技术栈-前端】告别“转圈圈”:详解前端性能优化之“乐观 UI” (Optimistic UI)
前端·ui
How_doyou_do2 小时前
浏览器本地存储Cookie, local/sessionStorage - Token结合Cookie实现登录管理
前端
烛阴2 小时前
C# Dictionary 入门:用键值对告别低效遍历
前端·c#