热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

js库建设方案

前言:自从互联网诞生之日起,JavaScript就成为统治web前端开发的通用语言,并在web开发人员群体中得到了广泛使用。JavaScript被数百万计的网页用来改进设计、验证表单、检测浏览器

前言:

自从互联网诞生之日起,Javascript就成为统治web前端开发的通用语言,并在web开发人员群体中得到了广泛使用。Javascript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建COOKIEs,以及更多的应用。

一套完整的BS模式系统界面解决方案。包括十余种不同结构的主页、各种常用的导航与布局模板、丰富的组件、特效和完备的CSS样式库等等,并有多种皮肤样式可供选择,适合WEB开发工程师、前端制作工程师和界面设计师使用,适用于各种应用系统的开发。将这些常用的js、css样式等封装成库,达到最大程度的公用,这将能够大幅度地提高系统开发效率,降低开发成本。

一个良好设计的、适合自身产品的Javascript基础库,能让一线工程师从繁重的基础问题中解放出来,将更多的精力用于优化业务逻辑和产品体验,从而提高研发效率。但这并非意味着所有公司都一味地采用通用开源的Javascript库,因为业务特点和需求的不同,不同的公司所需要的Javascript库的内容也不一样。从长期发展来看,针对自己公司业务的特点,设计最适合自己的Javascript库才能够达到事半功倍的效果。

一、现状与存在的问题

目前公司现有系统前端的js脚本主要存在以下问题:

    1、浏览器兼容性问题

       系统js效果无法兼容IE6、IE7、IE8、FIREFOX等主流浏览器,出现页面错位、显示不全等问题。

    2、js书写不规范。

       不少系统页面js效果全部写在页面里面,页面杂乱,对于一些js效果需要单独js文件链接进来。

    3、js代码臃肿,客户端加载慢。

       客户端js代码实现复杂,代码量大;js代码冗余,无关代码较多。往往一个简单的效果,几行代码就能实现,确需要加入多个js文件。如我们只是写一个简单的图片滚动效果,一般情况下自己写就可以了,如果这时候用一个JQueryUI就显得臃肿了。

    4、js效果与现有系统框架冲突问题

       现有系统已使用前台框架与现有js代码相冲突,导致页面错误。如现有睿剑平台开发使用的是MooTools的类库,如果加入基于jquery的效果就会发生冲突。

    5、js代码与后台代码结合问题,导致js实现效果与UI设计的效果不一致。

       不少页面js效果需要按照UI设计进行包装,往往存在UI设计的界面实现不了或者界面走样

二、解决方案

    1、所有系统统一各js效果的UI界面和实现方式。

    2、js代码尽量精简而且规范,不要有任何多余的代码。

    2、对所有常用js效果进行封装,对外只提供调用的方法。

    3、增加兼容性,实现与现有的系统零冲突。

4、控件尽量做到高类聚,低耦合,拆分控件功能特性,让所有特性实现可插拔。

    5、各js效果要按需装载,保证从中调出的代码量是最小的

三、实现方式

    1、使用原生的js,不使用框架。

       缺点:书写复杂,代码量大,考虑浏览器兼容性

       优点:不依赖框架

    2、完全使用网上主流的js类库和组件,如jquery和jqueryUI,Extjs等

       优点:快速开发,简化操作,更多关注业务逻辑的实现,不用过分关心浏览器兼容等问题。

       缺点:不良依赖,忽略基础特性,受到框架的架构、设计的理念所限制和约束。

    3、自主开发全新类库和组件。

       优点:能灵活根据公司业务要求适应。

       缺点:工作量大,人力及条件达不到要求。

    4、使用网上主流的js类库,结合自身业务特点自主开发组件。

       优点:快速开发,简化操作,更多关注业务逻辑的实现,屏蔽浏览器兼容问题。

       缺点:不良依赖,忽略基础特性,受到类库的架构、设计的理念所限制和约束。

     建议:根据具体业务场景,使用主流js类库,结合自身业务特点自主开发组件与使用原生JS相结合。    

对于一些简单的页面效果,可以直接写一些原生的js代码实现,对于一些常用效果,可以将其封装成组件库,使用的时候用统一的语法调用,可以达到JS的结构与行为分离,使页面更干净,使用更方便,减少代码量,不易出错,浏览器兼容。

四、现有js库分析

现在业界的几种主流框架和类库,Jquery,mootools,prototype,YUI,Extjs,dojo,包括国内的淘宝的kissy,百度的七巧板等。

近期国外科技网站W3Techs公布了对近100万个网站进行调查分析报告显示:“jQuery是目前最流行的Javascript库”。W3Techs发现被调查的网站中有61.0%的网站没有使用任何的Javascript库,而使用jQuery的占到总数的29.2%,而使用MooTools、Prototyp、ASP.NET Ajax、Dojo等其他Javascript库的总数只占到9.8%。jQurey占到了Javascript市场份额的74.7%的市场份额。

如果除却环境原因,在各方面需求都非常均衡的情况下选择框架,个人认为可以从易用性,高性能,功能性,多浏览器兼容,跨平台,可扩展性等方面考虑。

考虑简单易用,Jquery的$远远领先了其他框架。

高性能上,根据主流框架选择器性能测试,Jquery在这方面也是出于领先地位。

功能上,包括UI和其他方面。现在各个框架基本都有自己的UI,不过EXT在这方面更强一些。

可扩展性方面:jquery有大量用户开发的插件可供使用

多浏览器兼容和跨平台现在已经成框架的最基本要求了,基本上每种框架都会跨浏览器。


推荐阅读
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法
    本文介绍了获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法,包括使用jQuery的选择器和遍历方法。通过这些方法,可以方便地获取到所需的元素,并进行相应的操作。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
author-avatar
国务二局
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有