一个古老的后台管理系统

之前就使用过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这些基础,无非是解决问题的方式更方便和更全面了,对基础掌握的越深,才能对框架使用的越好。
  • 其二,新技术的敏感性,新技术的流行,必然解决了某些痛点,技术人应该与时俱进,保持学习,这样才能更好的解决问题。
相关推荐
蒜蓉大猩猩1 小时前
Vue3.js - 一文看懂Vuex
前端·javascript·vue.js·前端框架·html5
前端Hardy1 小时前
探索 HTML 和 CSS 实现的 3D旋转相册
前端·css·3d·html·css3
小白讲前端1 小时前
酷炫的鼠标移入效果(附源码!!)
前端·javascript·css·html·css3
前端Hardy1 小时前
探索 HTML 和 CSS 实现的模拟时钟
前端·javascript·css·html·css3
那就可爱多一点点3 小时前
H5页面多个视频如何只同时播放一个?
前端·音视频
前端郭德纲5 小时前
浅谈React的虚拟DOM
前端·javascript·react.js
2401_879103686 小时前
24.11.10 css
前端·css
ComPDFKit7 小时前
使用 PDF API 合并 PDF 文件
前端·javascript·macos
yqcoder7 小时前
react 中 memo 模块作用
前端·javascript·react.js
优雅永不过时·8 小时前
Three.js 原生 实现 react-three-fiber drei 的 磨砂反射的效果
前端·javascript·react.js·webgl·threejs·three