热门标签 | 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有大量用户开发的插件可供使用

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


推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 为开发者提供了一系列实用的参考网站和资源链接,包括HTML速查手册( 和 ),帮助开发者快速查找和学习相关技术知识。此外,还涵盖了其他重要的开发工具和文档,为编程工作提供全面支持。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 本文详细探讨了 jQuery 中 `ajaxSubmit` 方法的使用技巧及其应用场景。首先,介绍了如何正确引入必要的脚本文件,如 `jquery.form.js` 和 `jquery-1.8.0.min.js`。接着,通过具体示例展示了如何利用 `ajaxSubmit` 方法实现表单的异步提交,包括数据的发送、接收和处理。此外,还讨论了该方法在不同场景下的应用,如文件上传、表单验证和动态更新页面内容等,提供了丰富的代码示例和最佳实践建议。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 触发器的稳态数量分析及其应用价值
    本文对数据库中的SQL触发器进行了稳态数量的详细分析,探讨了其在实际应用中的重要价值。通过研究触发器在不同场景下的表现,揭示了其在数据完整性和业务逻辑自动化方面的关键作用。此外,还介绍了如何在Ubuntu 22.04环境下配置和使用触发器,以及在Tomcat和SQLite等平台上的具体实现方法。 ... [详细]
  • 本文全面解析了JavaScript中的DOM操作,并提供了详细的实践指南。DOM节点(Node)通常代表一个标签、文本或HTML属性,每个节点都具有一个nodeType属性,用于标识其类型。文章深入探讨了DOM节点的创建、查询、修改和删除等操作,结合实际案例,帮助读者更好地理解和掌握DOM编程技术。 ... [详细]
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社区 版权所有