关于达博站群系统ASP模版建站体会

由于我进入站群的权限到期了,所以有些内容没有截图... 只能在发给我的培训资料中找一些 "合适" 的,毕竟资料上印着 保密资料

站群系统

该项目是为学院重建一个学院网站,第一次接触这种在站群建站的开发模式,还记得信息中心的老师一直强调 "这很简单,这很简单!"

这个站群系统采用的是 模板 + 栏目 + 资料 生成一个完整的动态站点。

模板 + 栏目 + 资料


动态网站与静态网站

动态网站:当用户发起请求时,服务器根请求附带的条件动态生成,并向用户展示的网站,一般以 aspjspphp 等为后缀。

静态网站:与动态网页相反,在服务器上预先写好,在收到请求时直接返回给用户的网站,一般以 html 为后缀。

动态网站含有较多脚本生成的内容,以及和数据库的交互,所以访问速度会较慢,对搜索引擎的友好程度会下降,但是相对于静态网站固定的内容而言,动态网页又能完成静态网页不及的功能。


模板

模板采用 jsp 格式,使用的是 FreeMarker 模板引擎 (这是 Java Template Engine,是做完网站之后才知道的这是啥 -_- )。

这里的模版至少需要三个:首页,列表页,内容页。

首页模版充当首页的脚手架,根据用户在首页上点击的链接,进入对应的列表页,如用户点击 "学院新闻" 栏目则进入新闻列表,或者直接进入所点击的内容详情展示页面。

模板是由 html 的页面框架 和 组件 构成 ,给的模版页面布局基本上都是 table 表格布局,已经比较老旧,模板的语法比较简单,加上该站群后台的封装,容易上手,看一下同类型的组件写法就会了,例如一篇文章的接口就包含:news.url , news.title , news.thowTitle 等等,将它们替代为文章对应部分在组件中的位置即可。

该站群的组件必须要在组件库中选择,为了方便定制,就需要选 DIV + CSS 的组件,这样就能自己修改代码,结合例如 Bootstrap 这样的框架进行定制 (我就是这样做的)。

DIV + CSS


栏目

栏目是连接模板和资料的桥梁。

在栏目页可以设置一级栏目和对应栏目下的子栏目,新建栏目可以同时自动生成资料库中相同名称和层级的资料库。通过在页面上放置 "导航组件" 可以将栏目显示在页面上。

该站群系统的栏目分为:

  • 首页:一个网站只有一个首页栏目,可以建子栏目;
  • 普通栏目:可以建子栏目;
  • 专题栏目:不可建子栏目;
  • 链接:可以建子栏目,可以链接到任意位置。

在栏目下,可以设置某个栏目的模板,以及该栏目对应的资料库 (不设置默认为同名同层的资料库),也可以设置资料库的继承关系 (当该没有该资料库或者资料库没有所需的资料时,系统选取资料的方式,也就是同层选取还是父级选取)。

通过设置栏目是否在导航中显示,可以调整业务上或者排版上的需求。但是我的实现方式是在写模版时,规定死了只显示前9个栏目,一方面是学院说不会再调整了,另一方面,也是最重要的是,当选择了不在导航中显示时,页面中其他需要该栏目名称的时候,无法通过调用系统提供的接口将其显示。

实际情况是,我需要在某一栏目的页面中设置面包屑导航,而该栏目又不需要在主导航中显示,导致尴尬的矛盾发生,无奈下只得通过渲染模版时规定 list_index < 9 来实现隐藏该栏目。关于这一点我不知道是否还有更好的办法。


资料库

后期对站点内文章的发布,修改等操作都在这里完成,资料库还包含了轮播图等其他页面组件的资料。

资料库分为文章集图片集。文章集和图片集的区别在于模版中调用该文章的具体内容是使用 news 还是 image,例如文章或者图片的标题分别为 news.showTitleimage.showTitle

资料库中一个比较重要的部分,或者说比较重要的任务就是"文章采集"

文章采集是类似于爬虫机制,爬取目标页面指定部分的内容,并解析,存入自己的资料库中。指定内容的方式是靠指定起始和结束的标签来完成,同时可以指定下一页的链接,或者是指定固定数量分页和有规则的 URL 地址来完成。

由于指定起始或结束的标签有时候不方便,该系统可以选择使用强大的正则来助阵。


兼容性

兼容性是我遇到的最麻烦的问题,首先要兼容到 xp ,也就是说至少要到 IE8,实际上要考虑到 IE7 ,在以前的 coding 的时候并没有过多的去考虑到兼容性的问题,最多就是在心里念叨一遍,考虑一下是不是不能用 canvas 或者 WebGL 之类的,这次算是一点亲身经历吧。

  • media query
    这个是硬伤,不过还好解决,已经有人为其写过 Respond.js 来弥补 IE8 的不兼容性,BootCDN 地址奉上。

  • translate
    这个问题在于 Bootstrap 的轮播图插件,为了达到轮播图流畅滑行效果,Bootstrap@3 为图片添加了 transform-3d 效果,其实这个可以使用改变 margin-left 的值来实现,或者直接使用 JQuery 的动画实现,但是由于时间原因,另外考虑到学校图书馆和办公室那些大头娃娃电脑的性能,宁愿放弃这一点。(学校领导也总是对我耳濡目染,不在乎美不美观,能用就行...)。

  • border-radius
    其实这个兼容性问题也是体现在轮播图上,轮播图下方会有一排点来表示当前图片是第几张,那些个圆圆的点就是用 border-radius 实现的,如果要解决,就用做好的图片来代替,也不是很必要,所以就没去抠图了。

  • ::before 与 ::after
    这个影响到了字体图标了,只能用 PS 或 AI 做图标喽。

还有啥?不记得了,想起来的时候再更新吧 ... 就是这么任性。


心得

其实整个过程在站群系统的环境下完成,所以显得不是很吃力,大部分规则和接口都已经准备好,只需要开发者熟悉一下就能上手。

虽然这个站点是动态网页技术实现的,但是本身对于我来讲,并没有接触到 jsp 的一些知识点,恰当一点地说,这就是那种用 Dreamweaver 拼起来的网站 (确实在写代码的时候看到了页面有安装 DW 插件的选项),而我理解的前端开发,已经不是 Dreamweaver 的时代了。

对于这个网站,在设计方面有挺多遗憾,一方面是时间紧,另一方面是学院领导的要求 (shĕn mĕi),毕竟是建筑学的孩纸,对这方面多少还是挺在乎的!

你可能感兴趣的:(关于达博站群系统ASP模版建站体会)