`
zhyi_12
  • 浏览: 99863 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

web UI 组件化的一些经历

阅读更多

  当年,统计局中的牛人使用原生态的javascript写了一份庞大的报表填报组件。让我不可避免的走上了javascript的组件化开发的路子,开始组织我的web UI组件库,一口气的写下了一堆乱七八糟的组件,且正好赶上jQuery新鲜出炉,看过几段demo,粗粗的瞄了一把代码后,优雅和高效的代码让我一下走到了一个极端,天了,用JavaScript动态生成HMTL是多么美好的一件事情啊,翻看着以前使用taglib化得各种组件,实在是太不堪了,明明可以分散的交给客户端完成的东西为什么偏偏要放在服务器端生成,罪过、罪过,纯粹的客户端生成html,这不就是web UI组件开发的理想模式吗,一切都交给js的组件完成,界面简单的填写着规范化得js组件参数,完成各种复杂的交互性高的功能简直是太完美了,这不,本着这个思路,又重新的按照jquery的插件模型,整个的把组件库给重写了,看着使用者这些组件库开发的一些demo,都已经让自己陶醉了。唉,这不在这种极端的思路的引诱下,偷偷(罪过,这事千万别干了)在项目中把自己写的一颗看似不错的UI组件给加了进来,结果随着功能的深化,里面的js复杂程度越来越高,再加上自己对JavaScript的肤浅认识,造就了一大批旁人的难以维护的代码,自己吃了些苦头倒还好,就是难为了不少后面进来的同事,每念及此,心里便是一阵的慌张。

  慌张不能解决我的问题,于是乎开始了寻找一种更完美方式来组件web UI组件以及这些组件的引入方式,在当年的EXT作者和JQuery作者的一番交锋之后,jQuery 官方的 ui 组件库让我又重新找到了一个方向,模式、模式,要想简单而方便的使用ui组件,一种良好的模式和规划必不可少,一天天的看着jQuery的成长,似乎我的UI组件化也越来越顺利了,再加上firefox这个调试的工具,各种效率更高,使用更加规范的组件的出炉,又有点飘飘然的感觉了。还好这次我没有冒冒然的把东西用在了实际的项目中,仅仅乘着一个研究性的项目把东西拿出来偷偷地实验了一把,看着这些比较规范、比较方便的维护的代码,又是一件不由自主的激动,快速一个个功能往上添加。这个时候,另外一个的问题出现了,庞大的js代码库,纯js动态生成的html,不可避免的影响了网页的加载速度,自己开发的时候用着性能较高的机器,没有什么感觉,可是我们的客户,机器的配置一台不如一台,当js使用达到一定的程度后,虽然尽力的避免了内存泄露,但是总是会在那些个ie中会有些缓慢。无赖啊无赖,这个还是组件的问题啊,革命还尚未成功啊,路还远。

  怎么样才能进一步的提高效率呢,js可以优化的地方已经不多了,css的组织也越来越完善,这时才明白过来,原来自己一直在走一条比较极端的路,一门心思的把精力放在了js本身的优化上,殊不知做了多少本来不该放在客户端生成的东西,服务器的瓶颈根本就不在这么些html的生成啊,样式固化后,靠标签之类的方式生成部分的组件的html,js仅仅是处理一些模型以及动作方面的事情。术业有专攻、只有最佳的前后台配置才能出最好的效果。接下来就是要寻找一条最佳的配置方案了...

  这不,又开始了在新的这个研究性项目中偷偷地把东西拿出来使用标签的方式重写了。工作忙里偷闲的整些自己愿意做的事情,倒是给这目前的枯燥的项目带来了些动力,本来觉着无聊的cognos,用着这些自造的组件去做些集成性的demo,也不是那么的讨厌了。

 

分享到:
评论
1 楼 hustlxjaw 2009-12-21  
哈哈,在这里看到你的文章了,还是近期发布的,最近我也有这个体会啊,主要有以下几个方面:
1、界面太多逻辑、太多内容还是需要简化和分解
2、很多东西还是用成熟的东西好,自己的力量太小,有稳定的东西优先用,在熟悉的基础上进行扩展,但前提是体系得一样。比如最好别用jQuery的tree,Ext的Grid,yui的panel组合起来,等等。知识传递的时候也忒费劲。
3、组件多样化。比如树形组件,我可能有很多种类型,但这些树都继承自同一个最基础的树形菜单,但是根据不同的需要又衍伸出很多的新特征。这些多样的树又可以通过统一入口方法中的开关来进行切换。以达到分离与结合的目的。
4、模式。js与java的区别还是挺大,尤其是效率上。就像GPU和CPU一样,执行不同的程序,执行速度有非常大的区别。
5、关于组件封装的程度。项目就是项目,是有业务逻辑和特定需求的,无法实现简单的标准化过程,所以有些重复性的劳动和必要的修改还是经常出现的。要根据实际情况来处理。

最近可能会回武汉,到时候给你打电话出来聊聊啊,哈哈。

相关推荐

    ligerui框架

    2. **初始化组件**:通过JavaScript代码创建和配置LigerUI组件,例如`$("#element").ligerGrid(options)`创建一个表格。 3. **数据绑定**:设置数据源,可以是静态数据,也可以是动态获取的JSON格式数据。 4. **...

    jquery目前全部版本+ui大全+案例

    jQuery UI的设计理念是模块化,允许开发者按需引入所需的组件,减少页面加载负担。 **jQuery UI案例** 在"jqueryui案例"中,可能包含了一系列使用jQuery UI编写的示例代码或实际项目,这些案例可以帮助开发者了解...

    老旧项目手动引入element-ui资源包

    它是由饿了么团队开发的一套基于Vue.js的开源UI组件库,提供了丰富的组件如表格、按钮、提示、下拉菜单等,适用于构建企业级的Web应用。Element UI的设计理念是简洁、易用,它的API设计遵循Vue.js的最佳实践,使得...

    UI设计师web简历html5模板下载_设计设计师简历web简历bootstrap手机响应式单页作品案例ui.rar

    标题中的“UI设计师web简历html5模板下载”表明这是一个针对UI设计师的网页简历模板,采用HTML5技术构建,旨在帮助设计师展示他们的作品和经历。HTML5是现代网页开发的基石,它提供了更好的语义化标签,增强了网页的...

    FlexyCard程序员工程师web简历模板_html5 bootstrap 响应式模板UI前端源码.rar

    FlexyCard程序员工程师Web简历模板是一款基于HTML5和Bootstrap框架的响应式UI前端源码,专为编程人员和工程师设计,旨在创建一个专业且具有吸引力的在线个人简历展示平台。这款模板利用了现代Web技术,提供了高度...

    web dynpro abap programming guidelines

    - **阶段模型(Phase Model)**: 描述了Web Dynpro应用程序在运行过程中经历的不同阶段,如初始加载、数据绑定、用户交互处理等。 - **客户端实现(Client Implementation)**: 包括了客户端代码的生成和执行过程,这些...

    ExtJS Web应用程序开发指南(第2版

    它提供了丰富的UI组件库,支持数据绑定、响应式设计等特性,使得开发者能够快速高效地创建现代化的Web界面。ExtJS不仅适用于构建企业级应用,也广泛应用于各种规模的项目中。 ### 构建Web应用程序的核心概念 #### ...

    kahi-ui:现代Web应用程序的直接UI

    同时,关注Kahi UI的更新和社区支持,因为作为预阿尔法版本,框架可能会经历频繁的改进和修复。最后,尽管目前没有正式的文档,但从源代码和示例中学习,结合在线资源和社区讨论,将是掌握Kahi UI的关键步骤。

    设计设计师简历web简历uivi博客blog个人主页bootstrapft5简洁Singular.rar

    【标题】"设计设计师简历web简历uivi博客blog个人主页bootstrapft5简洁Singular.rar" 涉及到的关键知识点主要包括HTML、Bootstrap框架以及前端设计元素。HTML是超文本标记语言,是网页开发的基础,用于定义网页内容...

    个人博客,vue,element-ui,springboot,前后端不分离.zip

    Vue.js是一个轻量级的前端JavaScript框架,以其易学易用、组件化开发和高效的更新性能而闻名。Vue的核心库专注于视图层,易于与其他库或现有项目集成,使得开发者可以快速构建用户界面。在这个个人博客项目中,Vue...

    Angular Vue Easy UI ExtJS前端视频教程

    Angular的核心特性包括依赖注入、模块化、组件化、路由、表单处理等。学习Angular时,你需要理解指令、服务、管道、模块以及Angular CLI的使用,这些都是构建复杂应用的基础。 **Vue** Vue.js是一款轻量级的渐进式...

    基于vue+mint-ui的单页面HTML5简历,让自己的简历变得不一般.zip

    Vue.js 是一款非常流行的前端JavaScript框架,由尤雨溪(Evan You)开发,它以组件化、轻量级和高性能著称。Vue.js 的设计理念是使开发过程更加简单和直观,适合构建用户界面和单页面应用。Mint UI 是一套基于 Vue....

    Java web初学实践

    4. **JavaServer Faces (JSF)**:JSF是一种Java EE规范,提供了一种组件模型来构建Web UI。它简化了视图和控制器的创建,通过声明式编程降低了复杂性。 5. **Java Persistence API (JPA)**:JPA是Java EE中的ORM...

    ComponentArt UI Framework 2009.1 SN

    对于希望了解或回顾2009年左右UI设计技术的开发者而言,深入研究这一版本将是一次宝贵的学习经历。 然而,值得注意的是,随着Web技术的发展,尤其是HTML5、CSS3和JavaScript的成熟,现代的前端框架如React、Angular...

    web_compo_test2:用CodeSandbox创建

    【标题解析】 "web_compo_test2:用CodeSandbox创建" 这个标题...综上所述,这个项目涵盖了使用UI5开发Web组件,并通过CodeSandbox进行测试和协作的基本流程,涉及了HTML基础、组件化编程原理以及前端开发的实践技巧。

    EXTJS讲解个人项目经历

    EXTJS 的核心在于其组件化的架构,允许开发者构建复杂的UI布局和功能丰富的应用程序。以下是对EXTJS相关知识点的详细解释: 1. **引入EXTJS库**: 在使用EXTJS开发时,我们需要在HTML页面中引入EXTJS的核心样式表...

    WPF做的一个微型IIS(IIS来源于Visual studio 2008)

    通过这个项目,开发者不仅可以深入理解WPF的使用,还能掌握Web服务器的管理和调试,这对于Web开发和系统管理的学习者来说是一次宝贵的实践经历。同时,这也展示了如何通过结合不同的技术工具,创造新的实用工具,以...

    华为Anyoffice 2015 HTML5移动应用开发大赛线下沙龙-《企业移动化-HTML5的机会与未来》云适配产品总监马铎

    在前端框架的选择上,马铎讨论了JQuery、Bootstrap、MVC/MVVM、Sencha/ExtJS、KendoUI、AngularJS、Vue.js、ReactJS等前端技术,并强调了组件化、封装性、集成性和多态性的重要性。他提出了理想中的前端框架应具备的...

Global site tag (gtag.js) - Google Analytics