《开源框架那点事儿20》:自己动手写前端框架

曾经发表过一篇文章:TinyAdmin前端展现框架。其在线演示路径为:http://www.tinygroup.org/tinyadmin/。应该说有很多人还是感觉兴趣的,可是因为这个是基于SmartAdmin框架改写的,尽管我们自己买了SmartAdmin的授权,可是广大用户假设要用的时候,就会有授权相关的问题,这会大大影响一些人的使用决策--尤其是会再发行的朋友。
再一个原因是SmartAdmin初看不是不错的。可是实际用起来。里面的问题比較多。对IE8基本上能够说是不兼容,尽管我们努力进行了一定的修正,可是还是兼容性不够好。有些用户体验方面也有改进的空间,这就越来越让我思考。是不是要有更好的解决方式?

直到AJian和密缘之友增加我的团队之后,我认为是时候比較彻底的解决问题了。

果然。在风淡芸轻、AJian、密缘之友的通力合作下,仅仅用了一个月左右的时间。就拿出一TinyUI的初始版本号。眼下已经基本完好。当然我们还在进行系统性的測试,相信还存在一些小问题(有些我们自己已经发现,正在修正中),欢迎感兴趣的同学们一起来參与改进。

在线演示地址:http://www.tinygroup.org/tinyuiweb/

源代码地址(必须托管在高大上的开源中国GIT仓库):http://git.oschina.net/tinyframework/TinyUiEnterprise

开发环境构建,须要有GIT,MAVEN(3.1.x)。JDK1.6:

?

1

2

3

4

5

git clone https://git.oschina.net/tinyframework/TinyUiEnterprise.git

cd TinyUiEnterprise

mvn install

cd *web

mvn jetty:run

在运行mvn install的时候,第一次时间比較长,由于要从中央仓库下载一些资源包,能够抽支烟、喝杯茶、走走步啥的。

假设走完最后一步。就能够启动起一个本地环境(注意,没有别的应用战用8080port)。这个时候起个浏览器,输入:

?

1 http://localhost:8080/tinyuiweb/

注意。请在IE9以上浏览器、Chrome、FireFox等浏览器上浏览,眼下IE8还在作适应性调整。

一些说明,本UI框架中。有一些内容取自H-UI。这个我们和H-UI源创团队进行过沟通。他们同意我们复用他们框架中的内容。

本UI框架中,在某些外在实现方面參考了SmartAdmin的一些特性,可是没有复用它的源代码。

本UI框架中,集成了一些开源的JQuery插件,可是不改变原来插件的授权方式。请使用者在使用时查看原始插件的授权方式。

TinyUI的一些特性说明:

  • 提供了完整的主页面框架
  • 提供了整页切换和Ajax局部刷新的支持
  • 提供了丰富的菜单插入点
  • 提供了多种皮肤
  • 提供了丰富的界面元素自己定义
  • 提供了UI组件包的封装
  • 提供了宏封装,使得使用时不必关心详细实现
  • 提供了流式布局。在手机端也有良好的展现
  • 良好的攻克了UI组件包之间的依赖关系
  • 良好的攻克了CSS合并和JS合并及其压缩方面的问题

以下我通过一些图形了做一个展示:

101942_4gwE_1245989.jpg (149.91 KB, 下载次数: 0)

下载附件

半小时前 上传

上面是当中的一个页面,组件包列表是依据实际载入的组件包数量实时计算出来的。因此不须要人为进行改动---这个就是依赖TinyUiEngine的强大支持了。

102247_JRuS_1245989.jpg (173.42 KB, 下载次数: 0)

下载附件

半小时前 上传

点击设置button,会显示界面调整面板,在这里能够对导航条、菜单条、导般菜单等进行固定与否的调整,也能够调整菜单的位置。还能够选择是採用全屏还是固定宽度的设置。值得一提的是假设选择固定宽度,会依据页面的宽度在970与1170宽度之间自己主动适应。再以下就是各种各样的主题风格了。呵呵。如今的主题风格仅仅是简单调整了一下,用于測试,后面会请专业的美工同学进行系统性的调整。

然后。里面就是几十个组件的实际演示样例。我敢保证你想用的多大多组件都已经包括在内了。

假设你觉得还不够,请到bbs.tinygroup.org社区中留言,仅仅要提的合理。我们会以你想象不到的速度高速进行加入。

以下我展示一个流式布局的示范:

一開始是整页宽度的固定宽度显示。还能够看到两边的阴影,如今固定宽度为1170像素。

105844_Y3Xr_1245989.jpg (139.81 KB, 下载次数: 0)

下载附件

半小时前 上传

我们降低它的宽度

110144_U8Bj_1245989.jpg (134.49 KB, 下载次数: 0)

下载附件

半小时前 上传

它的宽度已经变成970像素宽。

再把它的宽度降低。

110416_DqM2_1245989.jpg (131.87 KB, 下载次数: 0)

下载附件

半小时前 上传

能够看到两边的隐藏已经没有了。

110539_YSqH_1245989.jpg (108.22 KB, 下载次数: 0)

下载附件

半小时前 上传

因为宽度实在是小。菜单就不再完整显示。而是仅仅显示图标了。

110717_2u8d_1245989.jpg (84 KB, 下载次数: 0)

下载附件

半小时前 上传

嗯嗯,效果不错。已经完整的展示了整个过程。

111016_159t_1245989.jpg (57.55 KB, 下载次数: 0)

下载附件

半小时前 上传

上面是菜单显示方式。能够看到是很适合手机等触摸屏上操作的。

Tiny出品,必是精品,小伙伴们一起參与或增加我们吧!!!



欢迎訪问开源技术社区:http://bbs.tinygroup.org。本例涉及的代码和框架资料,将会在社区分享。《自己动手写框架》成员QQ群:228977971,一起动手,了解开源框架的奥秘!

开源訪谈录

时间: 2024-10-29 19:11:14

《开源框架那点事儿20》:自己动手写前端框架的相关文章

《开源框架那点事儿20》:探秘前端展现框架

以前发表过一篇文章:TinyAdmin前端展现框架,其在线演示路径为:http://www.tinygroup.org/tinyadmin/,应该说有许多人还是感觉兴趣的,但是由于这个是基于SmartAdmin框架改写的,虽然我们自己买了SmartAdmin的授权,但是广大用户如果要用的时候,就会有授权相关的问题,这会大大影响一些人的使用决策--尤其是会再发行的朋友. 再一个原因是SmartAdmin初看不是不错的,但是实际用起来,里面的问题比较多,对IE8基本上可以说是不兼容,虽然我们努力进行

《开源框架那点事儿20》:发布TinyUI前端框架

以前发表过一篇文章:TinyAdmin前端展现框架,其在线演示路径为:http://www.tinygroup.org/tinyadmin/,应该说有许多人还是感觉兴趣的,但是由于这个是基于SmartAdmin框架改写的,虽然我们自己买了SmartAdmin的授权,但是广大用户如果要用的时候,就会有授权相关的问题,这会大大影响一些人的使用决策--尤其是会再发行的朋友. 再一个原因是SmartAdmin初看不是不错的,但是实际用起来,里面的问题比较多,对IE8基本上可以说是不兼容,虽然我们努力进行

自己动手写web框架----1

本文可作为<<自己动手写struts–构建基于MVC的Web开发框架>>一书的读书笔记. 一个符合Model 2规范的web框架的架构图应该如下: Controller层的Servlet就是一个全局的大管家,它判断各个请求由谁去处理. 而各个BusinessLogic就决定具体做什么. 通过上面的图,我们能看出来核心的组件就是那个servlet,它要处理所有的请求. 那么我们就先在web.xml里配置这个servlet: <?xml version="1.0&quo

第一招:自己动手写HTTP框架介绍

我相信很多人都会质疑:网上已经有那么多开源的HTTP框架,android-async-http已经很成熟了,Stay你再来讲而且还收费有意义么. Stay在这里统一作答. HTTP作为所有app的必备功能,我觉得有必要来讲. 开源框架授之以鱼,我希望能做到授之以渔. 看看android-async-http里的issues,如果你也碰到变态需求,你是否会改,而不是等待作者帮你解. 每个人的理解能力不一样,可能看不懂源码,我希望把骨架拎出来,一个个讲解,让你弄懂它的设计思想. 可能就算你看懂了代码

转:自己动手写插件框架(3)

转自:http://www.devbean.net/2012/03/building-your-own-plugin-framework-3/ 编程语言的支持 在前面的章节中,我们已经了解到,如果你能够使用编译器令应用程序和插件的虚表匹配,那么就可以保持 C++ 虚表级别的兼容性:或者你可以使用 C 级别的兼容性,然后就能使用不用的编译器去构建系统,但其限制在于你只能编写纯 C 应用.这样的话,你就不能够使用前面我们在例子 IActor 中看到的那种优雅的 C++ 接口. 纯 C 实现 在纯 C

转:自己动手写插件框架(2)

转自:http://www.devbean.net/2012/03/building-your-own-plugin-framework-2/ 插件编程接口 所谓插件,其实就是基于接口的设计.基于插件的系统最基本的一点就是,要有一个中心系统,用于加载未知的插件,并且能够使用预先定义好的接口和协议与这些插件进行交互. 最基本的方式是定义一个接口,提供一系列插件(动态的或者是静态)需要暴露出的函数.这种实现从技术上说是可行的,但实际并不那么简单地操作.原因在于,一个插件需要支持两类接口,但是却只能暴

自己动手写javaEE框架-为jqgrid换换皮肤然后加到我的框架里

软件151 苏垚 今天让我倒腾半天的居然不是写我的javaEE框架,而是更换jqgrid的皮肤.我是相当的讨厌jqgrid的默认皮肤,它总让我想起一直想学而都没学过的EXTJS,看多了那种淡蓝色的皮肤太多了绝对视觉疲劳,所以这篇博文就从jqgrid换肤讲起吧,这个过程在网络上找到的资料比较少,因此我今天的博文还是很有实用价值的.不废话了,下面开始吧! 首先我们在浏览器地址栏里填入地址:http://www.trirand.com/blog/?page_id=6,这是jqgrid的下载界面,如下图

自己动手写web框架----2

在上一节,我们自己写的web框架,只能运行显示一个HelloWorld.现在我们对其进行一次加工,让他至少能运行一个登陆程序. 首先看login.jsp <%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %> <%@ page import=" java.u

自己动手写RPC框架到dubbo的服务动态注册,服务路由,负载均衡功能实现

RPC即远程过程调用,它的实现方式有很多,比如webservice等.框架调多了,烦了,没激情了,我们就该问自己,这些框架的作用到底是什么,来找回当初的激情. 一般来说,我们写的系统就是一个单机系统,一个web服务器一个数据库服务,但是当这单台服务器的处理能力受硬件成本的限制,是不能无限的提升处理性能的.这个时候我们使用RPC将原来的本地调用转变为调用远端的服务器上的方法,给系统的处理能力和吞吐量带来了提升. RPC的实现包括客户端和服务端,即服务的调用方和服务的提供方.服务调用方发送rpc请求